当前位置:   article > 正文

C++ vector的常见用法_vector的用法

vector的用法

C++ vector的常见用法

一、vector 的初始化:可以有4种方式:

1)vector<int> a(10); //定义了10个整型元素的向量,但没有给出初值2)vector<int> a(10,1); //定义了10个整型元素的向量,且给出每个元素的初值为13)vector<int> a(b); //用b向量来创建a向量,整体复制性赋值4)vector<int> a(b.begin(),b.begin+3); //定义了a值为b中第0个到第2个(共3个)元素5)vector<vector<int>> a(10, vector<int>(10));//嵌套初始化
  • 1
  • 2
  • 3
  • 4
  • 5

二、vector对象的几个重要操作:
(1)将b的0~2个元素构成的向量赋给a

vector<int> b = { 1, 2, 3, 4, 5, 6 };
vector<int> a;
a.assign(b.begin(), b.begin() + 3);
  • 1
  • 2
  • 3

a 为: {1,2,3}

(2)a有5个元素,且每个元素为1

vector<int> a;
a.assign(5, 1);
  • 1
  • 2

a 为:{1,1,1,1,1}

(3)返回a的最后一个元素

vector<int> a = { 1, 2, 3, 4, 5, 6 };
cout << a.back()<<endl;
  • 1
  • 2

输出为:6

(4)返回a的第一个元素

vector<int> a = { 1, 2, 3, 4, 5, 6 };
cout << a.front()<< endl;
  • 1
  • 2

输出为:1

(5)返回a的第i个元素

vector<int> a = { 1, 2, 3, 4, 5, 6 };
cout << a[3]<< endl;
  • 1
  • 2

输出为:4

(6)清空a中的元素

vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.clear();
cout << a.size() << endl;
  • 1
  • 2
  • 3

输出为:0

(7)判断a是否为空,空则返回1,不空则返回0

vector<int> a = { 1, 2, 3, 4, 5, 6 };
cout << a.empty() << endl;
a.clear();
cout << a.empty() << endl;
  • 1
  • 2
  • 3
  • 4

输出为:0
输出为:1

(8)删除a向量的最后一个元素

vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.pop_back();
  • 1
  • 2

a为:{1,2,3,4,5}

(9)删除a中第1个(从第0个算起)到第2个元素

vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.erase(a.begin() + 1, a.begin() + 3);
  • 1
  • 2

a为:{1,4,5,6}

(10)在a的最后一个向量后插入一个元素,其值为7

vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.push_back(7);
  • 1
  • 2

a为:{1,2,3,4,5,6,7}

(11)在a的第1个元素(从第0个算起)的位置插入数值7

vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.insert(a.begin() + 1, 7);
  • 1
  • 2

a为:{1,7,2,3,4,5,6}

(12)在a的第1个元素(从第0个算起)的位置插入3个数,其值都为7

vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.insert(a.begin() + 1, 3, 7);
  • 1
  • 2

a为:{1,7,7,7,2,3,4,5,6}

(13)b为数组,在a的第1个元素(从第0个算起)的位置插入b的第3
个元素到第5个元素(不包括b+6)

int b[] = { 7, 8, 9, 10, 11, 12, 13 };
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.insert(a.begin() + 1, b + 3, b + 6);
  • 1
  • 2
  • 3

a为:{1,10,11,12,2,3,4,5,6}

(14)返回a中元素的个数;

vector<int> a = { 1, 2, 3, 4, 5, 6 };
cout << a.size() << endl;
  • 1
  • 2

输出为:6

(15)返回a在内存中总共可以容纳的元素个数

vector<int> a(10);
cout << a.capacity() << endl;
  • 1
  • 2

输出为:10

(16)将a的元素个数调至10个,多则删,少则补

vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.resize(10);
  • 1
  • 2

a为:{1,2,3,4,5,6,0,0,0,0}

(17)将a的现有元素个数调至10个,多则删,少则补,其值为2

vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.resize(10, 2);
  • 1
  • 2

a为:{1,2,3,4,5,6,2,2,2,2}

(18)将a的容量(capacity)扩充至10

vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.reserve(10);
cout << a.capacity() << endl;
  • 1
  • 2
  • 3

输出为:10

(19)b为向量,将a中的元素和b中的元素进行整体性交换

vector<int> b = { 7, 8, 9, 10, 11, 12 };
vector<int> a = { 1, 2, 3, 4, 5, 6 };
a.swap(b);
  • 1
  • 2
  • 3

a为:{ 7, 8, 9, 10, 11, 12 }
b为:{ 1, 2, 3, 4, 5, 6 }

(20)a==b; //b为向量,向量的比较操作还有!=,>=,<=,>,<

(21)顺序取反

 reverse(a.begin(),a.end());
  • 1

(22)求和

#include<numeric>
double sum = std::accumulate(a.begin(), a.end(),0);
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/174596?site
推荐阅读
相关标签
  

闽ICP备14008679号