#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
//定义比较函数
bool comp(const int& a, const int& b){return a > b;}
int main()
{
//四种初始化方法
vector<int> vect1 = {2, 6, 4, 8, 10};
vector<int> vect2(vect1); //vect2是vect1的副本
vector<int> vect3(5, 0); //vect3包含5个“0”元素
vector<int> vect4(5); //vect4有5个元素
//两种二维数组定义方法
vector<vector<int>> a(5, vector<int>(6)); //定义大小为5行6列的数组
vector<vector<int>> b(5); //定义大小为5行的数组
vector<int*> c; //b.push_back(otherVect[0]);
//vector对象动态增长
vect1.push_back(12); //vect1为2,6,4,8,10,12
vect1.pop_back(); //vect1为2,6,4,8,10
//基本操作
int size = vect1.size(); //vector的长度
vector<int>::iterator begin = vect1.begin(); //vector的开头
vector<int>::iterator end = vect1.end(); //vector的结尾
int beginValue = vect1.front(); //vector开头元素
int endValue = vect1.back(); //vector结尾元素
int capacity = vect1.capacity(); //当前向量所能容纳的最大元素值
int maxSize = vect1.max_size(); //最大可允许的vector元素数量值
bool isEmpty = vect1.empty(); //判断是否为空
vect3.clear(); //清空vector
vect1.swap(vect2); //两个vector交换元素
vect1.assign(10, 100); //将10个“100”赋予vector
vect1.assign(vect2.begin(), vect2.end()); //将区间的值赋予vector
//插入
vect1.insert(vect1.begin() + 1, 5); //在下标为1的位置插入5
//两种删除
vect1.erase(vect1.begin() + 2); //删除下标为2的元素
vect1.erase(vect1.begin() + 1, vect1.begin() + 3); //删除下标区间为[1, 3]的元素
//算法 (需#include<algorithm>)
reverse(vect1.begin(), vect1.end()); //翻转
sort(vect1.begin(), vect1.end()); //从小到大排序
sort(vect1.begin(), vect1.end(),comp); //从大到小排序,comp自己定义
//三种访问方法
for (int i = 0; i < vect1.size(); i++) {
cout << vect1[i] << "\t"; //方法1
cout << vect1.at(i) << endl; //方法2
}
//方法3,迭代器访问
vector<int>::iterator it;
for (it = vect1.begin(); it != vect1.end(); it++) {
cout << *it<< endl;
}
return 0;
}
C++ Vector容器使用方法
最新推荐文章于 2023-11-23 20:58:16 发布