当前位置:   article > 正文

c++ vector使用

c++ vector使用

动态数组,使用方法与python数组类似

1.定义和初始化

vector<type> name创建一个名为nama的type类型vector
vector<type> name={val1,val2,val3}创建数组并初始化为[val1,val2,val3]
vector<type> name2(name1)使用name1的元素初始化name2(深拷贝,name1和name2的操作互不影响)
vector<type> name(n,val)创建一个名为name的数据类型为type的vector,并且初始化为包含了n个val
vector<type> name(n)name包含n个默认值初始化
vector<vector<type>> matrix(M,vector<type>(N))二维数组初始化,创建M*N的二维矩阵

  1. vector<int> v;//创建一个名为v的int类型数组
  2. vector<int> v={1,2,3};//创建一个名为v的int类型数组,并初始化为[1,2,3]
  3. vector<char> v2(v1);//使用char类型数组v1初始化v2
  4. vector<int> v(10,1);//创建一个int类型数组v,包含10个元素都为1
  5. vector<char> v(5);//创建一个char类型数组,包含5个元素
  6. vector<vector<int>> matrix(10,vector<int> (5));//创建一个尺寸为10*5的二维int类型矩阵,初始化默认为0

2.常用api

api作用说明
push_back(val)

末尾添加元素val,深拷贝
pop_back删除末尾元素
v[index]=val修改下标为index的值为val
v.size()返回v中元素个数
v.clear()清空数组等效于v={}
  1. int main() {
  2. vector<int> v = { 1,2,3 };//创建vector,并初始化为[1,2,3]
  3. //1.增加元素
  4. v.push_back(4);//[1,2,3,4]
  5. //2.删除元素
  6. v.pop_back();//[1,2,3]
  7. //3.修改
  8. v[0] = 0;//[0,2,3]
  9. //4.查看数组大小
  10. cout << v.size() << endl;//输出3
  11. //5.清空数组
  12. v.clear();
  13. cout << v.size();
  14. }

3.遍历元素

  1. int main() {
  2. vector<int> v = { 1,2,3 };//创建数组
  3. //auto表示自动分配数据类型,&表示创建temp应用,可以通过修改temp修改数组的值
  4. for (auto& temp : v)
  5. {
  6. temp = temp + 1;//遍历数组所有元素并+1
  7. }
  8. for (auto& temp : v)
  9. {
  10. cout << temp << endl;//循环三次,依次输出2,3,4
  11. }
  12. }

4.其他常用操作

v1==v2判断两vector相等,长度与内容都相等时才为true
v2=v1用v1的元素替换v2的元素(深拷贝,互不影响)
sort排序,直接修改原数组内容,无返回值。配合begin、end,rbegin、rend实现正反排序
  1. int main() {
  2. vector<int> v = { 4,1,2,3 };//创建数组
  3. sort(v.begin(), v.end());//由小到大排序[1,2,3,4]
  4. for (int temp : v)//打印输出
  5. {
  6. cout << temp << endl;
  7. }
  8. sort(v.rbegin(), v.rend());//由大到小排序[4,3,2,1]
  9. for (int temp : v)//打印输出
  10. {
  11. cout << temp << endl;
  12. }
  13. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号