vector

vector

变长数组

  • push_back()

    在vector后面添加元素

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <stdio.h>
    #include <vector>

    using namespace std;

    int main()
    {
    vector<int> v;
    for(int i=0;i<5;++i)
    {
    v.push_back(i);//在v后面添加元素
    }
    for(int i=0;i<v.size();++i)
    {
    printf("%d ",v[i]);
    }
    }
    1
    0 1 2 3 4
  • pop_back()

    删除vector的尾元素

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #include <stdio.h>
    #include <vector>

    using namespace std;

    int main()
    {
    vector<int> v;
    for(int i=0;i<5;++i)
    {
    v.push_back(i);
    }
    v.pop_back();//删除v的尾元素4
    for(int i=0;i<v.size();++i)
    {
    printf("%d ",v[i]);
    }
    }
    1
    0 1 2 3
  • size()

    获得vector中元素的个数

  • clear()

    清空vector中的所有元素

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include <stdio.h>
    #include <vector>
    using namespace std;
    int main()
    {
    vector<int> v;
    for(int i=0;i<5;++i)
    v.push_back(i);
    v.clear();
    printf("v.size=%d\n",v.size());

    //以下代码不会被执行,因为不满足循环判断条件
    for(int i=0;i<v.size();++i)
    printf("%d ",v[i]);
    }
    1
    v.size=0
  • insert()

    insert(it,x)用来向vector的任意迭代器it处插入一个元素x

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <stdio.h>
    #include <vector>
    using namespace std;
    int main()
    {
    vector<int> v;
    for(int i=0;i<5;++i)
    v.push_back(i);
    v.insert(v.begin()+2,9);//将9插入到v[2]的位置

    for(int i=0;i<v.size();++i)
    printf("%d ",v[i]);
    }
    1
    0 1 9 2 3 4
  • erase()

    • 删除单个元素

      erase(it):删除迭代器为it处的元素

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      #include <stdio.h>
      #include <vector>
      using namespace std;
      int main()
      {
      vector<int> v;
      for(int i=0;i<5;++i)
      v.push_back(i);
      v.erase(v.begin()+2);//删除下标为2的元素

      for(int i=0;i<v.size();++i)
      printf("%d ",v[i]);
      }
      1
      0 1 3 4
    • 删除一个区间内的所有元素

      erase(first,last)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      #include <stdio.h>
      #include <vector>
      using namespace std;
      int main()
      {
      vector<int> v;
      for(int i=0;i<5;++i)
      v.push_back(i);
      v.erase(v.begin()+2,v.begin()+4);//删除下标为2到4的元素

      for(int i=0;i<v.size();++i)
      printf("%d ",v[i]);
      }
      1
      0 1 4
凡希 wechat
喜欢所以热爱,坚持干货分享,欢迎订阅我的微信公众号
呐,请我吃辣条