c++迭代器STL中的vector简单概述
c++迭代器STL中的vector简单概述
- 1.c++迭代器的位置
- 2.STL六大组件
- 3.STL中for_each的使用
- 4.STL中容器嵌套容器
1.c++迭代器的位置
2.STL六大组件
容器 算法 迭代器 仿函数 适配器 空间配置器
容器 : 存放数据
算法 : 操作数据
迭代器 : 容器和算法的桥梁
仿函数 : 为算法 提供更多的策略
适配器 : 为算法提供更多的参数接口
空间配置器 : 管理容器和算法的空间
3.STL中for_each的使用
for_each(容器起始迭代器 , 容器结束迭代器 , 自定义打印函数);
// STL中for_each的使用
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>//要使用for_each必须包含此头文件
using namespace std;
class Person
{
public:
string name;
int age;
Person(string name, int age)
{
this->name = name;
this->age = age;
}
};
void myPrintf(Person &ob)
{
cout << "name:" << ob.name << ",age:" << ob.age << endl;
}
int main()
{
Person ob1("哈哈", 1);
Person ob2("嘿嘿", 2);
Person ob3("哼哼", 3);
Person ob4("嘻嘻", 4);
vector<Person> v;
v.push_back(ob1);
v.push_back(ob2);
v.push_back(ob3);
v.push_back(ob4);
for_each(v.begin(), v.end(), myPrintf);
return 0;
}
4.STL中容器嵌套容器
// STL中容器嵌套容器
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>//要使用for_each必须包含此头文件
using namespace std;
int main()
{
vector<int>v1;
vector<int>v2;
vector<int>v3;
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
v1.push_back(40);
v2.push_back(100);
v2.push_back(200);
v2.push_back(300);
v2.push_back(400);
v3.push_back(1000);
v3.push_back(2000);
v3.push_back(3000);
v3.push_back(4000);
//定义一个vector,将v1,v2,v3存放进去
vector< vector<int> >v;
v.push_back(v1);
v.push_back(v2);
v.push_back(v3);
//for循环遍历
for( vector<vector<int>>::iterator it = v.begin();it!=v.end();it++ ){
//*it == vector<int> v1 v2 v3
for(vector<int>::iterator mit = (*it).begin();mit!=(*it).end();mit++){
//*mit == int
cout<<*mit<<" ";
}
cout<<endl;
}
return 0;
}