欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vector的基本操作

程序员文章站 2022-03-01 23:19:09
...
  1. v.push _back(<T>):可以往vector中添加元素,当容器满了之后,容器会自动动态扩容,会重新建一个vector容器,然后将原vector容器的内容拷贝至新容器中。在动态扩容时会多扩充一些空位,以防下次再次增加数据。

  2. fill(v.begin(), v.end(), 0):将vector中的元素置为0。

  3. myvector.erase():删除vector中的元素

    myvector.erase(myvector.begin() + num);
    //删除容器中的第num+1个元素
    
    myvector.erase(myvector.begin(), myvector.begin()+3);
    //删除容器中前3个元素
    
  4. find(v.begin(), v.end(), key) != v.end();:在vector中是否存在某值key;

  5. v.size():表示实际容器中保存元素的个数,可以通过调用v.resize(size_type)在容器尾部添加/删除一些元素来改变容器的size值;

  6. v.capacity():表示在重新分配之前该容器v允许存放元素的个数;可以通过调用v.reserve(size_type)设置capacity的值,该函数强制容器把它的容量改为至少n,提供的n不小于当前容量。一般强迫进行重新分配,因为容量需要增加。值得注意的是:如果n小于当前容量,vector会忽略它,该调用什么都不会做;

  7. v1.swap(v2):可以交换两个容器v1和v2中的元素;

  8. v.clear():可以清空vector中的元素,使vector的size变为0,capacity不发生变化;

  9. v.shrink_to_fit():函数用于减少容量以适应元素个数。值得注意的是:该函数请求容器降低其容量和size匹配,但该请求不具有约束力,容器可以*地去执行其他的优化方案(capacity可以大于size)。该方法由编译器决定是否真正释放多余的内存,该方法仅是提出请求,是否实现仍由编译器决定。

  10. merge():合并两个int类型的vector:

    //在使用merge()合并两个容器前需要提前准备需要的存储空间
    v3.resize(v1.size( )+ v2.size( ));
    merge(v1.begin(),v1.end(),v2.begin(),v2.end(),v3.begin());
    
    //在merge()函数中使用back_inserer不需要提前准备空间
    merge(v1.begin(),v1.end(),v2.begin(),v2.end(),back_inserer(v4));
    
    //依次将容器v1和容器v2中的元素插入到容器v3的begin()位置中
    
  11. insert():在容器v1的end()位置依次插入容器v2中的元素;

      v1.insert(v1.end(),v2.begin(),v2.end());