zoukankan      html  css  js  c++  java
  • 【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求最大值最小值

  • 相关阅读:
    在windows下拆卸Linux就是这么俭朴
    打点Linux下永中Office和桌面殊效的冲突
    Banshee 0.11.4
    ubuntu8.0中文输入法
    RedFlag 6.0 硬盘安置我解
    阅读器和把持体系和用户的IQ
    初试Fedora,最后还是Xubuntu
    VMware中放置Ubuntu后鼠标滚轮标题问题办理
    GNOME 的文件经管器将片面支撑标签式阅读
    ATI显卡开启fedora9的3d后果的一些条记
  • 原文地址:https://www.cnblogs.com/KMould/p/12102290.html
Copyright © 2011-2022 走看看