vector 的遍历方式总结
代码测试框架
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
text0x(){...}
int main()
{
text01();
//text02();
//text03();
//text04();
//text05();
return 0;
}
一、遍历方式<一>
1、for 循环+迭代器[iterator]
1.1 for + iterator
void text01()
{
vector<int> v1 = {0,1,2,3,4,5,6};
for(vector<int>::iterator ite = v1.begin(); ite != v1.end(); ite++)
{
cout << *ite <<" ";
}
}
运行结果:
0 1 2 3 4 5 6
1.2 for + iterator + auto
void text02()
{
vector<int> v1 = {0,1,2,3,4,5,6};
for(auto ite = v1.begin(); ite != v1.end(); ite++)
{
cout << *ite <<" ";
}
}
运行结果:
0 1 2 3 4 5 6
二、遍历方式<二>
1、for 循环+auto
void text03()
{
vector<int> v1 = {0,1,2,3,4,5,6};
for(auto it : v1)
{
cout << it <<" ";
}
}
运行结果:
0 1 2 3 4 5 6
三、遍历方式<三>
1、for 循环+[ ]
void text04()
{
vector<int> v1 = {0,1,2,3,4,5,6};
for(int i = 0; i < v1.size(); i++)
{
cout << v1[i] <<" ";
}
}
运行结果:
0 1 2 3 4 5 6
四、遍历方式<四>
1、for_each + 全局函数【不传入参数】
template<class T>
void myprintf(T a)
{
cout << a << " ";
}
void text05()
{
vector<int> v1 = {0,1,2,3,4,5,6};
//需要包含头文件#include<algorithm>
for_each(v1.begin(),v1.end(),myprintf<int>);
}
运行结果:
0 1 2 3 4 5 6