- 1.vector容器概述
- 2.vector对象的常用内置函数使用(一部分)
- 3.vector容器存放内置数据类型
- 4.vector容器存放自定义数据类型
- 5.存放自定义类型的数据类型指针
- 6.vector容器嵌套vector容器
2.vector对象的常用内置函数使用(一部分)vector容器是一个与数组类似的单元,可以存储若干个值。STL容器是同质的,这样说大家可能听不懂,就是vector容器中存储的值的类型相同
而迭代器能够用来遍历容器的对象
#include3.vector容器存放内置数据类型//返回a的第一个元素 a.front(); //返回a的第i元素,当且仅当a存在 a[i]; //清空a中的元素 a.clear(); //判断a是否为空,空则返回true,非空则返回false a.empty(); //删除a向量的最后一个元素 a.pop_back(); //删除a中第一个(从第0个算起)到第二个元素,也就是说删除的元素从a.begin()+1算起(包括它)一直到a.begin()+3(不包括它)结束 a.erase(a.begin()+1,a.begin()+3); //尾插法 a.push_back(5); //在a的第一个元素(从第0个算起)位置插入数值5, a.insert(a.begin()+1,5); //在a的第一个元素(从第0个算起)位置插入3个数,其值都为5 a.insert(a.begin()+1,3,5); //b为数组,在a的第一个元素(从第0个元素算起)的位置插入b的第三个元素到第5个元素(不包括b+6) a.insert(a.begin()+1,b+3,b+6); //返回a中元素的个数 a.size(); //返回a在内存中总共可以容纳的元素个数 a.capacity(); //将a的现有元素个数调整至10个,多则删,少则补,其值随机 a.resize(10); //将a的现有元素个数调整至10个,多则删,少则补,其值为2 a.resize(10,2); //将a的容量扩充至100, a.reserve(100); //b为向量,将a中的元素和b中的元素整体交换 a.swap(b);
#includeusing namespace std; #include #include//标准STL算法头文件 //vector容器存放内置数据类型 myprint(int var) { cout< v; //向容器中插入数组 v.push_back(15); v.push_back(24); v.push_back(36); v.push_back(49); //通过迭代器访问容器中的数据 vector ::iterator itbegin=v.begin();//起始迭代器 指向容器中第一个元素 vector ::iterator itend=v.end();//结束迭代器 指向容器中最后一个元素的下一个位置 //第一种遍历方式 //第2种遍历方式 for(vector ::iterator out=v.begin();out!=v.end();out++) { cout<<*out< 运行结果
4.vector容器存放自定义数据类型
#includeusing namespace std; #include #include//标准STL算法头文件 //vector容器存放自定义数据类型 class person { public: person(string name,int age) { this->m_name=name; this->m_age=age; } string m_name; int m_age; } ; void vectorit() { vector v; person p1("zal",18); person p2("fcb",25); person p3("pcd",33); person p4("fdx",49); person p5("xcd",54); //向容器中插入数据 v.push_back(p1); v.push_back(p2); v.push_back(p3); v.push_back(p4); v.push_back(p5); //遍历容器中的数据 for(vector ::iterator out=v.begin();out!=v.end();out++) { //cout<<"姓名: "<<(*out).m_name<<"年龄: "<<(*out).m_age; //or cout<<"姓名: "< m_name<<"年龄: "< m_age< 运行结果
5.存放自定义类型的数据类型指针
#includeusing namespace std; #include #include//标准STL算法头文件 //vector容器存放自定义数据类型的指针 class person { public: person(string name,int age) { this->m_name=name; this->m_age=age; } string m_name; int m_age; } ; void vectorit() { vector v; person p1("zal",10); person p2("sdf",20); person p3("vfd",30); person p4("nhg",40); person p5("qrh",50); //向容器中插入数据 v.push_back(&p1); v.push_back(&p2); v.push_back(&p3); v.push_back(&p4); v.push_back(&p5); //遍历容器中的数据 for(vector ::iterator it=v.begin();it!=v.end();it++) { cout<<"姓名: "<<(*it)->m_name<<" 年龄: "<<(*it)->m_age< 运行结果
6.vector容器嵌套vector容器
#includeusing namespace std; #include #include//标准STL算法头文件 //vector容器嵌套vector容器 void vectorit() { vector > v; //创建小容器 vector v1; vector v2; vector v3; vector v4; //向小容器中添加数据 for(int i=0;i<4;i++) { v1.push_back(i+1); v2.push_back(i+2); v3.push_back(i+3); v4.push_back(i+4); } //将小容器插入大容器中 v.push_back(v1); v.push_back(v2); v.push_back(v3); v.push_back(v4); //通过大容器,把所有数据遍历一遍 for(vector >::iterator it=v.begin();it!=v.end();it++) { //(*it)----相当于一个容器vector for(vector ::iterator vit=(*it).begin();vit!=(*it).end();vit++) { cout<<*vit<<" "; } cout< 运行结果



