检测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排序

【C++】Vector求最大值最小值

【C++】vector容器的用法的更多相关文章

  1. vector容器的用法

    转自一篇博客^-^: 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.p ...

  2. c++ vector容器基本用法

    基本用法 #include<iostream> #include<string> #include<vector> using namespace std; cla ...

  3. vector容器的用法以及动态数组

    vector容器不必去管大小 string申明的数组已经是动态的了 若是int类型的话,需要 cin>>N: int a[N]会出错 ,必须是int *p = new int[N] 然后再 ...

  4. (转载)C++STL中vector容器的用法

     vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说vec ...

  5. vector容器经常用法

    容器简单介绍 定义及初始化 末尾插入元素 遍历 size 函数是能够动态添加的 通过下标操作添加改变vector内容不是安全的操作 仅能对已存在元素进行下标操作不存在会crash 将元素一个容器复制给 ...

  6. Vector 容器简单介绍

    # Vector STL简要介绍 关于STL中的vector容器,以下做一些相关介绍. #### vector 简要概述 vector 称作向量类,属于容器类,实现了动态的数组,用于元素数量变化的对象 ...

  7. STL:vector容器用法详解

    vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组.像数组一样,vector类也用从0开始的下标表示元素的位置:但和数组不同的是,当vector对象创建后,数组的元素个数会随着ve ...

  8. vector容器用法详解

    vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组.像数组一样,vector类也用从0开始的下标表示元素的位置:但和数组不同的是,当vector对象创建后,数组的元素个数会随着ve ...

  9. STL之二:vector容器用法详解

    转载于:http://blog.csdn.net/longshengguoji/article/details/8507394 vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组. ...

随机推荐

  1. buaaoo_fourth_assignment

    你轻轻地走了 一.架构设计 (1)第一次作业 类图 复杂度分析 如上图是本单元第一次作业的架构设计,由于本人最开始未发现可以直接继承官方的类,所以自己将所用到的各种type都重新建了类,于是这就导致了 ...

  2. 33.2.NIO

    4.1概述[理解] BIO Blocking IO,阻塞型IO NIO No Blocking IO,非阻塞型IO 阻塞IO的弊端 在等待的过程中,什么事也做不了 非阻塞IO的好处 不需要一直等待,当 ...

  3. Visual Studio/VS中任务列表的妙用

    一.任务列表开启方法 首先说下开启的方法:视图-任务列表,即可打开任务列表. 快捷键Ctrl+'\'+T,熟练了可以快速开启.注意,'\'键是回车键上面的'',不要按成了'/' 二.任务列表标签设置 ...

  4. 一看就懂的MySQL的聚簇索引,以及聚簇索引是如何长高的

    这一篇笔记我们简述一下 MySQL的B+Tree索引到底是咋回事? 聚簇索引索引到底是如何长高的. 一点一点看,其实蛮好理解的. 如果你看过了我之前的笔记,你肯定知道了MySQL进行CRUD是在内存中 ...

  5. font

    font属性简写 front: font-style font-variant font-weight font-size/line-height font-family 说明: 值之间空格隔开 注意 ...

  6. [Python] 微信公众号开发 Python3

    搭建服务 开通一个阿里云ecs,安装python3及需要的包(参考下方官方文档) 将py文件保存在ecs上,运行 在本地访问阿里云的IP地址 能完成这步说明网络没问题 server.py 1 # -* ...

  7. centos下查看网卡,主板,CPU,显卡,硬盘型号等硬件信息

    centos下查看网卡,主板,CPU,显卡,硬盘型号等硬件信息 rose_willow rose_willow 发布于 2016/06/16 11:32 字数 902 阅读 405 收藏 0 点赞 0 ...

  8. Docker——基本使用及常用命令

    Docker 是一个开源的应用容器引擎,而一个容器其实是一个虚拟化的独立的环境,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. ...

  9. Heap Size 与 Stack Size

    Heap Size:如果没有用到标准库的malloc,就是废物,纯属浪费内存,所以直接设置为0即可: Stack Size :最大的可读写变量的大小即可:

  10. [TcaplusDB知识库]TcaplusDB客户端及常用命令

    数据库大都支持命令行访问,TcaplusDB也不例外,通过安装TcaplusDB客户端,您可以方便快捷地从命令行管理与访问数据库. TcaplusDB客户端 首先在 TcaplusServiceApi ...