C++ vector的常见用法

C++ vector的常见用法,第1张

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

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

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

二、vector对象的几个重要 *** 作:
(1)a.assign(b.begin(), b.begin()+3); //b为向量,将b的0~2个元素构成的向量赋给a

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

a 为: {1,2,3}

(2)a.assign(5,1); //是a只含5个元素,且每个元素为1

vector a;
a.assign(5, 1);

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

(3)a.back(); //返回a的最后一个元素

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

输出为:6

(4)a.front(); //返回a的第一个元素

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

输出为:1

(5)a[i]; //返回a的第i个元素

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

输出为:4

(6)a.clear(); //清空a中的元素

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

输出为:0

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

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

输出为:0
输出为:1

(8)a.pop_back(); //删除a向量的最后一个元素

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

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

(9)a.erase(a.begin()+1,a.begin()+3); //删除a中第1个(从第0个算起)到第2个元素

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

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

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

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

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

(11)a.insert(a.begin()+1,7); //在a的第1个元素(从第0个算起)的位置插入数值7

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

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

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

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

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

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

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

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

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

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

输出为:6

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

vector a(10);
cout << a.capacity() << endl;

输出为:10

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

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

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

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

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

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

(18)a.reserve(10); //将a的容量(capacity)扩充至10

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

输出为:10

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

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

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5611510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存