【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排序

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

原文地址:https://www.cnblogs.com/KMould/p/12102290.html