C++ vector
基础应用
1 vector<int> a; //声明一个int型向量a 2 vector<int> a(10); //声明一个初始大小为10的向量 3 vector<int> a(10, 1); //声明一个初始大小为10且初始值都为1的向量 4 5 vector<int> b(a); //声明并用向量a初始化向量b 6 vector<int> b(a.begin(), a.begin()+3); //将a向量中从第0个到第2个(共3个)作为向量b的初始值 7 8 int n[] = {1, 2, 3, 4, 5}; 9 vector<int> a(n, n+5); //将数组n的前5个元素作为向量a的初值 10 vector<int> a(&n[1], &n[4]); //将n[1] - n[4]范围内的元素作为向量a的初
1 vector<int> a; 2 a.push_back(1); //在尾部加入一个数据 3 a.pop_back(); //删除最后一个数据 4 a.insert(a.begin(), 0); //在a.begin()之前加入0 5 a.erase(a.begin()); //将a.begin()的元素删除 6 a.erase(a.begin() + 1, a.end()); //将第二个元素以后的元素均删除
1 vector<int> a; 2 //像数组一样以下标访问 3 for(int i = 0; i < a.size(); i++){ 4 cout << a[i]; 5 } 6 7 //以迭代器访问 8 vector<int>::iterator it; 9 for(it=a.begin(); it!=a.end(); it++){ 10 cout<<*it<<" " ; 11 }
1 #include <algorithm> 2 3 vector<int> a; 4 sort(a.begin(), a.end());
1 vector<vector<int>> a(10, vector<int>(5)); //创建一个10行5列的int型二维数组 相当于a[10][5]
算法
(1) 使用reverse将元素翻转:
1 #include<algorithm> 2 3 reverse(vec.begin(),vec.end()); //将元素翻转,即逆序排列
(2)使用sort排序:
1 #include<algorithm>, 2 3 //定义排序比较函数 4 bool Comp(const int &a,const int &b) 5 { 6 return a>b; 7 } 8 9 //调用 10 sort(vec.begin(),vec.end()); //默认是按升序排列,即从小到大 11 sort(vec.begin(),vec.end(),Comp),//这样就降序排序