这里有C++STL——全面总结详细教程(附案例解析)(持续更新中)
我们先认识一下vector:
声明
插入
输出
很好理解。
#include<iostream>
#include<vector>
using namespace std;
int main() {
std::vector<int> v;
for (int i = 0; i < 10; ++i)
{
v.push_back(i);
/* code */
}
for (int i = 0; i < v.size(); ++i)
{
cout << v[i] << ' ';
/* code */
}
cout << endl;
return 0;
}
插入10个数,输出即可。很好理解。
下面看一下使用迭代器:
vector存放内置数据类型
容器: vector
算法: for_each
迭代器: vector<int>::iterator
三种访问类型。
第一种:通过迭代器访问容器中的数据
第二种:通过for循环访问
第三种:通过c++的
模板函数for_each函数
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
void MyPrint(int val) {
cout << val << endl;
}
void test01() {
vector<int> v;
//插入数据
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(40);
v.push_back(50);
//第一种
//通过迭代器访问容器中的数据
vector<int>::iterator itBegin = v.begin();//第一个数据
vector<int>::iterator itEnd = v.end();//最后一个数据的下一个数据
while (itBegin != itEnd) {
cout << *itBegin << endl;
itBegin++;
}
//第二种
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << endl;
}
cout << endl;
//第三种
for_each(v.begin(), v.end(), MyPrint);
}
int main() {
test01();
system("pause");
return 0;
}