题意整理。
- 键盘输入5个整数,存入vector容器中。
- 采用正向迭代器和反向迭代器分别遍历vector中的元素并输出。
方法一(模拟)
1.解题思路
- 首先定义容器,然后键盘输入数据,并放入容器中。
- 接着声明迭代器指针,并指向容器开头位置。
- 正向遍历并输出元素,遍历完成之后指针在容器末尾,直接反向遍历,并输出元素即可,此时指针会回到容器开头位置。
图解展示:
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个数放入容器中,所以时间复杂度为。
- 空间复杂度:需要额外常数级别的空间(set容器属于必需空间),所以空间复杂度为。