题意整理。

  • 键盘输入5个整数,存入vector容器中。
  • 采用正向迭代器和反向迭代器分别遍历vector中的元素并输出。

方法一(模拟)

1.解题思路

  • 首先定义容器,然后键盘输入数据,并放入容器中。
  • 接着声明迭代器指针,并指向容器开头位置。
  • 正向遍历并输出元素,遍历完成之后指针在容器末尾,直接反向遍历,并输出元素即可,此时指针会回到容器开头位置。

图解展示: alt

2.代码实现

#include <iostream>
#include <vector>

using namespace std;

int main() {

    //定义容器
    vector<int> vec;
    int a;
    //键盘输入数据,并放入容器中
    while(cin>>a){
        vec.push_back(a);
    }

    //声明迭代器指针,指向容器开头位置
    vector<int>::iterator iter=vec.begin();
    //正向遍历并输出元素
    while(iter!=vec.end()){
        cout<<*iter<<" ";
        iter++;
    }
    //输出空行
    cout<<endl;
    //反向遍历并输出元素
    while(iter!=vec.begin()){
        iter--;
        cout<<*iter<<" ";
    }
    return 0;
}

3.复杂度分析

  • 时间复杂度:假设输入数据个数为n,需要将n个数放入容器中,所以时间复杂度为O(n)O(n)
  • 空间复杂度:需要额外常数级别的空间(set容器属于必需空间),所以空间复杂度为O(1)O(1)