【C++】vector容器的用法
检测vector容器是否为空:
1 #include <iostream>
2 #include <string>
3 #include <vector>
4 using namespace std;
5
6 int main()
7 {
8 //检测容器是否为空
9 vector<string>vecA;
10 if (vecA.empty())
11 {
12 cout << "mapText为空" << endl;
13 }
14 else
15 {
16 cout << "mapText不为空" << endl;
17 }
18
19 //向容器中添加元素
20 vecA.push_back("A");
21 vecA.push_back("B");
22 vecA.push_back("C");
23
24 if (vecA.empty())
25 {
26 cout << "mapText为空" << endl;
27 }
28 else
29 {
30 cout << "mapText不为空" << endl;
31 }
32
33 cin.get();
34 return 0;
35 }
访问vector容器中的元素:
1 #include <iostream>
2 #include <string>
3 #include <vector>
4 using namespace std;
5
6 int main()
7 {
8 vector<string>vecA;
9 vecA.push_back("A");
10 vecA.push_back("B");
11 vecA.push_back("C");
12
13 cout << "第1个元素:" << vecA.front() << endl;
14 cout << "最后1个元素:" << vecA.back() << endl;
15 cout << endl;
16
17 cout << "第2个元素:" << *(vecA.begin() + 1) << endl;
18 cout << "倒数第2个元素:" << *(vecA.end() - 1 - 1) << endl;
19 cout << endl;
20
21 cout << "第1个元素:" << *(vecA.begin()) << endl;
22 cout << "最后1个元素:" << *(vecA.end() - 1) << endl;
23 cout << endl;
24
25 for (int i = 0; i < vecA.size(); i++)
26 {
27 cout << "第" << i + 1 << "个元素:" << vecA[i] << endl;
28 }
29 cout << endl;
30
31 //通过迭代器遍历
32 for (vector<string>::iterator pd = vecA.begin(); pd != vecA.end(); pd++)
33 {
34 cout << "第?个元素:" << *pd << endl;
35 }
36 cout << endl;
37
38 cin.get();
39 return 0;
40 }
合并两个Vector,遍历的方法效率极低,推荐使用insert()函数
1 #include <iostream>
2 #include <string>
3 #include <vector>
4 using namespace std;
5 int main()
6 {
7 vector<string>vecA;
8 vecA.push_back("A1");
9 vecA.push_back("A2");
10
11 vector<string>vecB;
12 vecB.push_back("B1");
13 vecB.push_back("B2");
14
15 // 方法:insert() 函数
16 vector<string>vecAB;
17 vecAB.insert(vecAB.end(), vecA.begin(), vecA.end()); //将vecA插入
18 vecAB.insert(vecAB.end(), vecB.begin(), vecB.end()); //将vecB插入
19 for (int i = 0; i < vecAB.size(); i++)
20 {
21 cout << "vecAB=" << vecAB[i] << endl;
22 }
23 cin.get();
24 return 0;
25
26 }
将一个Vector的所有元素复制到另一个中
1 #include <iostream>
2 #include <string>
3 #include <vector>
4 using namespace std;
5 int main()
6 {
7 vector<string>vecA;
8 vecA.push_back("A1");
9 vecA.push_back("A2");
10
11 //方法1:声明
12 vector<string> vecB(vecA);
13 for (int i = 0; i < vecB.size(); i++)
14 {
15 cout << "vecB=" << vecB[i] << endl;
16 }
17 cout << endl;
18
19 //方法2:使用函数assign进行赋值
20 vector<string> vecC;
21 vecC.assign(vecA.begin(), vecA.end());
22 for (int i = 0; i < vecC.size(); i++)
23 {
24 cout << "vecC=" << vecC[i] << endl;
25 }
26 cout << endl;
27
28 // 方法3:insert() 函数
29 vector<string>vecD;
30 vecD.insert(vecD.end(), vecA.begin(), vecA.end()); //将vecA插入
31 for (int i = 0; i < vecD.size(); i++)
32 {
33 cout << "vecD=" << vecD[i] << endl;
34 }
35 cout << endl;
36
37 cin.get();
38 return 0;
39 }
将两个Vector的元素互换
1 #include <iostream>
2 #include <string>
3 #include <vector>
4 using namespace std;
5 int main()
6 {
7 vector<string>vecA;
8 vecA.push_back("A1");
9 vecA.push_back("A2");
10
11 vector<string>vecB;
12 vecB.push_back("B1");
13 vecB.push_back("B2");
14
15 for (int i = 0; i < vecA.size(); i++)
16 {
17 cout << "vecA=" << vecA[i] << endl;
18 }
19 for (int i = 0; i < vecB.size(); i++)
20 {
21 cout << "vecB=" << vecB[i] << endl;
22 }
23 cout << endl;
24
25 //方法:使用swap进行交换
26 vecB.swap(vecA);//交换
27
28 for (int i = 0; i < vecA.size(); i++)
29 {
30 cout << "vecA=" << vecA[i] << endl;
31 }
32 for (int i = 0; i < vecB.size(); i++)
33 {
34 cout << "vecB=" << vecB[i] << endl;
35 }
36
37 cin.get();
38 return 0;
39 }
删除Vector元素
1 #include <iostream>
2 #include <string>
3 #include <vector>
4 using namespace std;
5 int main()
6 {
7 vector<string>vecA;
8 vecA.push_back("A0");
9 vecA.push_back("A1");
10 vecA.push_back("A2");
11 vecA.push_back("A2");
12 vecA.push_back("A2");
13 vecA.push_back("A3");
14 vecA.push_back("A4");
15 vecA.push_back("A5");
16 vecA.push_back("A6");
17
18 for (int i = 0; i < vecA.size(); i++)
19 {
20 cout << "vecA=" << vecA[i] << endl;
21 }
22 cout << endl;
23
24 //删除最后一个元素
25 //vecA.pop_back();
26
27 //删除最后一个元素
28 //vecA.erase(vecA.end()-1);
29
30 //删除第2个元素
31 //vecA.erase(vecA.begin()+1);
32
33 //删除所有"A2"
34 for (vector<string>::iterator itor = vecA.begin(); itor != vecA.end(); /*++itor*/)
35 {
36 if (*itor == "A2")
37 {
38 itor = vecA.erase(itor);
39 }
40 else
41 {
42 ++itor;
43 }
44 }
45
46 for (int i = 0; i < vecA.size(); i++)
47 {
48 cout << "vecA=" << vecA[i] << endl;
49 }
50
51 cin.get();
52 return 0;
53 }
vector相关:
【C++】Vector判断元素是否存在,去重,求交集,求并集
【C++】vector容器的用法的更多相关文章
- vector容器的用法
转自一篇博客^-^: 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.p ...
- c++ vector容器基本用法
基本用法 #include<iostream> #include<string> #include<vector> using namespace std; cla ...
- vector容器的用法以及动态数组
vector容器不必去管大小 string申明的数组已经是动态的了 若是int类型的话,需要 cin>>N: int a[N]会出错 ,必须是int *p = new int[N] 然后再 ...
- (转载)C++STL中vector容器的用法
vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说vec ...
- vector容器经常用法
容器简单介绍 定义及初始化 末尾插入元素 遍历 size 函数是能够动态添加的 通过下标操作添加改变vector内容不是安全的操作 仅能对已存在元素进行下标操作不存在会crash 将元素一个容器复制给 ...
- Vector 容器简单介绍
# Vector STL简要介绍 关于STL中的vector容器,以下做一些相关介绍. #### vector 简要概述 vector 称作向量类,属于容器类,实现了动态的数组,用于元素数量变化的对象 ...
- STL:vector容器用法详解
vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组.像数组一样,vector类也用从0开始的下标表示元素的位置:但和数组不同的是,当vector对象创建后,数组的元素个数会随着ve ...
- vector容器用法详解
vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组.像数组一样,vector类也用从0开始的下标表示元素的位置:但和数组不同的是,当vector对象创建后,数组的元素个数会随着ve ...
- STL之二:vector容器用法详解
转载于:http://blog.csdn.net/longshengguoji/article/details/8507394 vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组. ...
随机推荐
- 每天一道面试题LeetCode 80--删除排序数组中的重复项 II(python实现)
LeetCode 80--删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输 ...
- 【编译原理】求First和Follow
写这篇博客的原因,是因为考试前以为自己已经将这个问题弄清楚了,但是,考试的时候,发现自己还是不会,特别是求follow集合.虽然考试结束了,希望屏幕前的你,可以真正理解这个问题. 码字和做视频都不容易 ...
- C++逆向分析----虚函数与多层继承
虚函数 C++通过关键字virtual来将函数声明为一个虚函数.当一个类包含虚函数后编译器就会给类的实例对象增加一个虚表指针,所谓的虚表指针就是指向虚表的指针.虚表就是一张地址表,它包含了这个类中所有 ...
- [2021BUAA软工助教]个人第一次阅读作业小结
BUAA个人阅读作业小结 一.作业要求 https://edu.cnblogs.com/campus/buaa/BUAA_SE_2021_LR/homework/11776 二.评分规则 言之有物,按 ...
- 有哪些适用于律师事务所的CRM系统?
中国的经济发展和政治稳定给律师行业带来了巨大的空间.而互联网的发展也让律师事务所遍地开花.如何在大大小小的律所中脱颖而出,是每个律所都迫切需要解决的问题.为了让您的律师事务所在激烈的竞争中脱颖而出,今 ...
- [MySQL数据库之表的约束条件:primary key、auto_increment、not null与default、unique、foreign key:表与表之间建立关联]
[MySQL数据库之表的约束条件:primary key.auto_increment.not null与default.unique.foreign key:表与表之间建立关联] 表的约束条件 约束 ...
- GIT·版本回退的指令
阅文时长 | 0.46分钟 字数统计 | 499.2字符 主要内容 | 1.引言&背景 2.指令集合&示例 3.声明与参考资料 『GIT·版本回退的指令』 编写人 | SCscHero ...
- [BD] Flume
什么是Flume 采集日志,存在HDFS上 分布式.高可用.高可靠的海量日志采集.聚合和传输系统 支持在日志系统中定制各类数据发送方,用于收集数据 支持对数据进行简单处理,写到数据接收方 组件 sou ...
- WPS-插入-公式-菜单 怎样在EXCEL中使用PRODUCT函数
怎样在EXCEL中使用PRODUCT函数 ################ WPS2018 -插入-公式-[专门有公式菜单] 插入函数 ################## ...
- 怎么用优启通安装win7 !!!!好好好20191020
怎么用优启通安装win7 PE技术探索在国内属于前沿梯队.相关PE工具更新的非常及时,两个月一更新,很赞. 尤其是论坛代表作之一:EasyImageX系统备份恢复镜像工具(集成在PE里面),可以说是用 ...