【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类称作向量类,它实现了动态数组,用于元素数量变化的对象数组. ...
随机推荐
- Day003 运算符
运算符 Java语言支持如下运算符: 算术运算符:+,-,*,/,%,++,-- 赋值运算符:= 关系运算符:>,<,>=,<=,==,!=,instanceof(判断一个对象 ...
- java之Map的使用
Map的实现类有很多,其中较为常见的有HashMap,HashTable,LinkedHashMap,TreeMap,下面分别对这几个类进行简单的分析: 1.HashMap HashMap的结构数组+ ...
- helium的浏览器启动及option配置 - 1
helium的浏览器启动及option配置 前言 helium只支持chrome和firefox两个浏览器,其中option配置是基于selelium来配置的,所以所调用的也是seleium的配置方式 ...
- Base64文件上传(Use C#)
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,它是一种基于64个可打印字符来表示二进制数据的方法. 使用base64进行文件上传的具体流程是:前台使用js将文件转换为base64格 ...
- 逆向工程初步160个crackme-------3
这个Crackme3 涉及到浮点指令以及浮点数的存储与运算,我没学习过浮点指令,不得不从网上恶补了1个小时,一边看汇编指令一边百度其指令含义. 回头得好好补补这方面的知识了,太菜了! 我大致了解了一下 ...
- [DB] CDH集群规划
配置 三台机器:node01.node02.node03 node01:6G+60G node02:2G+40G node03:2G+40G 组件 Cloudera Managerment Servi ...
- 016.Python闭包函数以及locals和globals
一 闭包函数 内函数使用了外函数的局部变量,并且外函数把内函数返回出来的过程叫做闭包,这个内函数叫做闭包函数 1.1 闭包函数语法 def outer(): a = 5 def inner(): pr ...
- mysql的示例及练习
示例及练习1-MOSHOU.hero.txtcreate database MOSHOU;use MOSHOU;create table hero(id int,name char(15),sex e ...
- shell基础之if语句
Shell流程控制 流程控制是改变程序运行顺序的指令.linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介 ...
- rpm命令的简介-(转自jb51.net )
在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的"添加/删除程序",但是功能又比"添加/删除程序"强很多,它就是Red Hat Pa ...