STL Vector整理
来源:互联网 发布:无印良品水乳 知乎 编辑:程序博客网 时间:2024/06/06 18:15
/**vector容器*//*2015.05.25 23:06 第一次整理*//*2015.05.26 14:17 第二次整理*/#include <iostream>#include <cstdio>#include <vector>#include <cstring>using namespace std;typedef struct Student{ int ID; string name;}struA;int main(){//构造 int nSize = 4; int i; const int &t = 9;//整型变量也行 vector <int> vecIntA(nSize,t);//元素个数为4且每个元素都为9 vector <struA> vecStruA(nSize); vector <int> vecIntB(vecIntA);//vecIntA复制到vecIntB(深复制?) vector <int> vecIntC;//创建一个空的vector,加括号与不加括号的区别? int arr[] = {1,2,3,4,5}; vector <int> vecIntD(arr,arr + 4);//这个函数只能用于构造容器,前闭后开,5没有复制进去 /**for(int i = 0;i < 5;i++)//容器中只有四个元素 cout << vecIntD[i] << endl;*///定位、遍历 int n = vecIntD.at(2);//返回位置为2的元素的引用 /**cout << "value:" << n << endl;//输出3*/ n = vecIntD.front();//返回首元素的引用 /**cout << "front value: "<< n << endl;//输出1*/ n = vecIntD.back();//返回尾元素的引用 /**cout << "back value:" << n << endl;//输出4*/ /*迭代器的使用同MAP*/ /*除迭代器外,还可用下标像数组一样遍历*////大小 int Size; Size = vecIntA.size(); /*cout << "size:" << Size <<endl;*/ Size = vecIntA.capacity();//返回当前vector能容纳的最大元素个数 /**cout << "capacity:" << Size << endl;//输出4*/ Size = vecIntA.max_size();//返回最大可允许的元素个数 /*cout << "max_size:" << Size << endl;*///删除,清空,判空 vector <int>::iterator vecIte; for(vecIte = vecIntA.begin();vecIte != vecIntA.end();++vecIte) { vecIntA.erase(vecIte);//删除迭代器指向元素 } /**cout << vecIntA.size() << endl;//输出2,会剩余两个元素,删除元素后因为会重置begin()位置,所以迭代器位置会变化,所以删不干净*/ /*for(vecIte = vecIntA.begin();vecIte != vecIntA.end();++vecIte) { cout << *vecIte << endl; }*/ vecIntA.erase(vecIntA.begin(),vecIntA.begin() + 1);//删除第1个到第2个之间的元素,前闭后开,所以第二个没有删除 /**for(vecIte = vecIntA.begin();vecIte != vecIntA.end();++vecIte) { cout << *vecIte << endl; }//输出一个9*/ vecIntA.pop_back();//删除最后一个元素 if(vecIntA.empty()) { /*cout << "empty!" << endl;*/ } else { /*cout << "not empty!" << endl;*/ } /**for(vecIte = vecIntB.begin();vecIte != vecIntB.end();++vecIte) { cout << *vecIte << endl; }//有元素输出,所以是深复制*/ vecIntB.clear(); vecIntC.clear(); /**if(vecIntC.empty()) { cout << "empty" << endl; }*/ vecIntD.clear(); vecStruA.clear();///插入 vecIntA.push_back(1); vecIntA.push_back(2); vecIntA.push_back(3); vecIntA.push_back(4);//向尾部插入元素 /*for(i = 0;i < 4;i++) { cout << vecIntA.at(i) << endl; }*/ vecIte = vecIntA.begin() + 2; const int &m = 6; vecIntA.insert(vecIte,m);//向迭代器指向的元素前插入元素m /*for(i = 0;i < vecIntA.size();i++) { cout << vecIntA[i]<< endl; }//1,2,6,3,4*/ n = 3; vecIte = vecIntA.begin() + 1;//插入元素后迭代器必须要更新? vecIntA.insert(vecIte,n,m);//向迭代器指向的元素前插入n个相同的元素m /**for(i = 0;i < vecIntA.size();i++) { cout << vecIntA[i]<< endl; }//1,6,6,6,2,6,3,4*/ vecIntB.push_back(5); vecIntB.push_back(7); vector <int>::const_iterator first,last; first = vecIntA.begin() + 1; last = vecIntA.end(); vecIntB.insert(vecIntB.begin(),first,last); //在迭代器所指向的位置请前插入同类型向量【first,last)之间的数据,前闭后开区间,last元素不插入,注意后面两个形参为常迭代器 /**for(i = 0;i < vecIntB.size();i++) { cout << "vecIntB[" << i << "]:" << vecIntB[i] << endl; }*////其他函数 vecIntB.assign(first,last);//向量中[first,last)中元素设置成当前向量元素,类似于copy函数 for(i = 0;i <vecIntB.size();i++) { cout << "vecIntB[" << i << "]:" << vecIntB[i] << endl; } vecIntA.assign(4,100);//设置4个元素的值为100 /**for(i = 0;i <vecIntA.size();i++) { cout << "vecIntA[" << i << "]:" << vecIntA[i] << endl; }//输出100,100,100,100*/ vecIntB.swap(vecIntA);//交换两个同类型向量的数据 /**for(i = 0;i <vecIntB.size();i++) { cout << "vecIntB[" << i << "]:" << vecIntB[i] << endl; }*/ return 0;}
0 0
- STL Vector整理
- C++ STL--vector容器整理
- STL Vector 常用操作整理(比较全面易懂的整理)
- STL 整理map、set、vector、list、stack、queue、deque、priority_queue
- C++STL(vector,map,set,list)成员函数整理
- STL vector
- STL vector
- stl vector
- STL vector
- STL vector
- stl-vector
- STL--vector
- STL Vector
- stl vector
- STL:vector
- STL---vector
- STL-vector
- Stl--Vector
- weka实战005:基于HashSet实现的apriori关联规则算法
- codeforces 510c Fox And Names 拓扑排序
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- 《C#高级编程》【第五章】泛型 -- 学习笔记
- UIImage类中的常用拉伸方法
- STL Vector整理
- 重新认识史蒂夫·乔布斯
- Swift流程控制
- 【Trie】【cogs647】有道搜索框
- 线程同步 资源锁定(一)
- Spring自带mock测试Controller
- 慧团网床上用品四件套家纺大全
- Nothing to be done for `_depend'.
- weblogic 安装 for linux (console)