c++向量(vector)

vector
  • 概念

    向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。

  • 使用

    引入头文件 #include<vector>

    • 构造

      1
      2
      3
      4
      5
      6
      7
      vector<int>a;    // 构造一个空的vector
      vector(int nSize) // 创建一个vector,元素个数为nSize
      vector(int nSize,const t& t) // 创建一个vector,元素个数为nSize,且值均为t

      // 二维数组的定义
      int N=5, M=6;
      vector<vector<int> > obj(N, vector<int>(M)); //定义二维动态数组5行6列
    • 增加

      1
      2
      void push_back()	// 向量尾部增加一个元素
      iterator insert(iterator it,const T& x) //向量中迭代器指向元素前增加一个元素x
    • 删除

      1
      2
      3
      4
      iterator erase(iterator it)	// 删除向量中迭代器指向元素
      iterator erase(iterator first,iterator last) // 删除向量中[first,last)中元素
      void pop_back() // 删除向量中最后一个元素
      iterator erase(iterator first,iterator last) // 删除向量中[first,last)中元素
    • 访问

      1
      a[i] 	// 类似数组的访问
    • 其他

      1
      2
      3
      bool empty() const   // 判断向量是否为空,若为空,则向量中无元素
      int size() const // 返回向量中元素的个数
      void assign(int n,const T& x) // 设置向量中第n个元素的值为x
sort

函数模板 sort() 的类型参数 Iter 是元素段元素对应的迭代器类型,而且它们必须支持随机访问迭代器。这表明 sort() 算法只能对提供随机访问迭代器的容器中的元素进行排序,也说明 sort() 只能接受 array、vector、deque 或标准数组中的元素。

  • 使用

    引入头文件 #include <algorithm>

    1
    2
    3
    sort(ben, end)	// 把迭代器中,[ben,end]内的元素升序排列
    // 如果想降序排列,可以给sort设置第三个参数(一个返回bool的比较函数)
    // 当然,也可以直接使用reverse()对排序后的进行反转