栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ vector的常见用法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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为向量,向量的比较操作还有!=,>=,<=,>,<

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/605366.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号