#include <vector>

双端队列deque比向量vector更有优势

vector是动态数组,在堆上

vector比array更常用

不需要变长,容量较小,用array

需要变长,容量较大,用vector

1 at()

取出下标

2 c_str()

执行

3 clear()

清空

4 erase()

根据迭代器的位置,删除元素

erase(myvector.begin() + 3)

5 fill

填充

6 find

7 find_if

8 find_if_not

9 insert()

插入元素

insert(myvector.begin() + 3, 998);//在第4个位置插入

10 pop_back()

删除最后一个元素

11 push_back()

push_back,算法语言里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

12 size()

求数组元素个数

13 sort

排序

14 swap()

交换

1 at()

取出下标

4 erase()

根据迭代器的位置,删除元素

erase(myvector.begin() + 3)

5 insert()

插入元素

insert(myvector.begin() + 3, 998);//在第4个位置插入

6 pop_back()

删除最后一个元素

7 push_back()

push_back,算法语言里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

8 size()

求数组元素个数

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 void main()
 6 {
 7     std::vector<int>myvector;//创建一个数组,数组元素是int类型
 8 
 9     myvector.push_back(1);//尾部加入一个数据
10     myvector.push_back(11);
11     myvector.push_back(111);
12     myvector.push_back(1111);
13     myvector.push_back(2);
14 
15     myvector.pop_back();//删除尾部元素
16 
17     for (int i = 0; i < myvector.size(); i++)//遍历
18     {
19         //std::cout << myvector[i] << std::endl;//上下一样
20         std::cout << myvector.at(i) << std::endl;//上下一样,at()可以取出下标
21     }
22     std::cout << std::endl;
23 
24     //根据迭代器的位置删除
25     myvector.erase(myvector.begin() + 3);//删除第四个元素。删除第3个元素(从0开始计算的话)
26 
27     for (int i = 0; i < myvector.size(); i++)//遍历
28     {
29         if (1)
30         {
31             //可以增加查询,修改功能
32         }
33         std::cout << myvector[i] << std::endl;
34     }
35     std::cout << std::endl;
36 
37     myvector.insert(myvector.begin() + 2, 998);//在第三个位置前插入,新数据变成第三。在第2个位置前插入,新数据变成第2(从0开始计算的话)
38 
39     for (int i = 0; i < myvector.size(); i++)//遍历
40     {
41         std::cout << myvector[i] << std::endl;
42     }
43     std::cout << std::endl;
44 
45     system("pause");
46 }

2 c_str()

执行

3 clear()

清空

6 pop_back()

删除最后一个元素

7 push_back()

push_back,算法语言里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

8 size()

求数组元素个数

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 void main()
 6 {
 7     std::vector<std::string>string1;//定义一个字符串数组
 8 
 9     string1.clear();//clear清空
10 
11     string1.push_back("notepad");//push_back尾部加入
12     string1.push_back("calc");
13     string1.push_back("mspaint");
14     string1.pop_back();//pop_back删除尾部元素
15 
16     for (int i = 0; i < string1.size(); i++)//size()长度
17     {
18         system(string1[i].c_str());//c_str执行,删除了最后一个,因此将会执行两个
19     }
20 
21     system("pause");
22 }

//正向迭代器iterator,begin()返回一个迭代器,它指向容器c的第一个元素,end()返回一个迭代器,它指向容器c的最后一个元素的下一个位置

//反向迭代器reverse_iterator,rbegin()返回一个逆序迭代器,它指向容器c的最后一个元素,rend()返回一个逆序迭代器,它指向容器c的第一个元素前面的位置

image

反向迭代器是一种反向遍历容器的迭代器。也就是,从最后一个元素到第一个元素遍历容器。反向迭代器将自增(和自减)的含义反过来了:对于反向迭代 器,++ 运算将访问前一个元素,而 -- 运算则访问下一个元素。

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 void main()
 6 {
 7     std::vector<std::string>string1;//创建一个字符串数组
 8 
 9     string1.clear();//清空
10 
11     string1.push_back("notepad");//尾部加入
12     string1.push_back("calc");
13     string1.push_back("mspaint");
14 
15     //正向迭代器iterator,begin()返回一个迭代器,它指向容器c的第一个元素,end()返回一个迭代器,它指向容器c的最后一个元素的下一个位置
16     std::vector<std::string>::iterator ibegin, iend;//创建两个迭代器指针
17     ibegin = string1.begin();//初始化迭代器指针,数据起始点
18     iend = string1.end();//初始化迭代器指针,结束
19 
20     for (; ibegin != iend; ibegin++)//从头到尾
21     {
22         std::string tempstr = *ibegin;//创建中间临时变量,获取指针指向的数据
23         system(tempstr.c_str());//执行
24     }
25 
26     //反向迭代器reverse_iterator,rbegin()返回一个逆序迭代器,它指向容器c的最后一个元素,rend()返回一个逆序迭代器,它指向容器c的第一个元素前面的位置
27     std::vector<std::string>::reverse_iterator rbegin = string1.rbegin();//创建迭代器指针,数据起始点
28     std::vector<std::string>::reverse_iterator rend = string1.rend();//创建迭代器指针,结束
29 
30     while (rbegin != rend)//从尾到头
31     {
32         std::string tempstr = *rbegin;//获取指针指向的数据
33         system(tempstr.c_str());//执行
34         rbegin++;//指针移动
35     }
36 
37     system("pause");
38 }

7 push_back()

push_back,算法语言里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

8 size()

求数组元素个数

//创建一个数组变量,元素是数组

vector可用于管理不规则的树状结构

国家-省-市县

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 void main()
 6 {
 7     std::vector<int>myvector1;//创建一个数组变量,元素是int类型
 8     myvector1.push_back(12);
 9     myvector1.push_back(13);
10     myvector1.push_back(14);
11 
12     std::vector<int>myvector2;//创建一个数组变量,元素是int类型
13     myvector2.push_back(22);
14 
15     std::vector<int>myvector3;//创建一个数组变量,元素是int类型
16     myvector3.push_back(32);
17     myvector3.push_back(37);
18 
19     std::vector<std::vector<int>>allvector;//创建一个数组变量,元素是数组
20     allvector.push_back(myvector1);
21     allvector.push_back(myvector2);
22     allvector.push_back(myvector3);
23 
24     for (int i = 0; i < allvector.size(); i++)//遍历
25     {
26         for (int j = 0; j < allvector[i].size(); j++)
27         {
28             std::cout << " " << allvector[i][j];
29         }
30         std::cout << std::endl;
31     }
32 
33     system("pause");
34 }

fill

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <vector>
 4 
 5 template <class T>
 6 class show
 7 {
 8 public:
 9     void operator()(T &t)
10     {
11         std::cout << t << " ";
12     }
13 };
14 
15 void main()
16 {
17     std::vector<int>myv;
18 
19     myv.push_back(7);
20     myv.push_back(8);
21     myv.push_back(9);
22     myv.push_back(4);
23     myv.push_back(5);
24     myv.push_back(6);
25 
26     fill(myv.begin() + 2, myv.end(), 10);//从下标2开始到尾部,用10填充
27     
28     for_each(myv.begin(), myv.end(), show<int>());
29 }

find

 1 #include <iostream>
 2 #include <vector>
 3 
 4 void main()
 5 {
 6     std::vector<int>myv;
 7 
 8     myv.push_back(1);
 9     myv.push_back(2);
10     myv.push_back(3);
11 
12     auto i = find(myv.begin(), myv.end(), 22);
13 
14     if (i == myv.end())
15     {
16         std::cout << "not found" << std::endl;
17     }
18     else
19     {
20         std::cout << *i << std::endl;
21     }
22 }

sort

全部元素排序

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <vector>
 4 
 5 template <class T>
 6 class show
 7 {
 8 public:
 9     void operator()(T &t)
10     {
11         std::cout << t << " ";
12     }
13 };
14 
15 void main()
16 {
17     std::vector<int>myv;
18 
19     myv.push_back(7);
20     myv.push_back(8);
21     myv.push_back(9);
22     myv.push_back(4);
23     myv.push_back(5);
24     myv.push_back(6);
25 
26     sort(myv.begin(), myv.end());//排序
27     
28     for_each(myv.begin(), myv.end(), show<int>());
29 }

sort

部分元素排序

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <vector>
 4 
 5 template <class T>
 6 struct show
 7 {
 8 public:
 9     void operator()(T &t)
10     {
11         std::cout << t << " ";
12     }
13 };
14 
15 void main()
16 {
17     std::vector<char>myv;
18 
19     myv.push_back('B');
20     myv.push_back('A');
21     myv.push_back('C');
22     myv.push_back('Y');
23     myv.push_back('Z');
24     myv.push_back('X');
25 
26     for_each(myv.begin(), myv.end(), show<char>());
27     std::cout << std::endl;
28 
29     sort(myv.begin(), myv.begin() + 3);
30 
31     for_each(myv.begin(), myv.end(), show<char>());
32     std::cout << std::endl;
33 }
原文地址:https://www.cnblogs.com/denggelin/p/5615415.html