• Vector(容器)


    vector(容器)就像数组一样,但比数组强大很多,下面介绍一下vector常用的几种方法:

    一、对于vector自身的处理,包括赋初始值,复制等等;

      vector<int> v1 ;

      vector<int> v2( 5 , 10) ;      // v2 中有5个元素,每个元素都是10

      vector<int> v3( v2 )          // 将 v2 复制给 v3

      vector<int> v4( v3.begin() , v3.end() )   // 同样是将 v3 复制给 v4 ;

      int a[] = {1,2,3,4,5} ;

      vector<int> v5( a , a + sizeof(a) / sizeof(int) )  // 将数组 a 中的元素复制给 v5 ;

    二、vector::operator ;

      vector<int> v1( 5 , 10 ) ;

      vector<int> v2 ;

      v2 = v1 ;           // 相当于将 v1 复制给 v2 ;

    三、vector 中的 begin 和 end 函数 ;

      begin 和 end 函数返回的都是当前指针并不是容器中的数值;

      存储当前返回指针的变量用:vector<int>::iterator iter ;

      vector<int> v( 5 , 10 ) ;

      *(v.begin())    //  输出第一个元素 ;

      *(v.end() - 1)   // 输出最后一个元素 ;

    四、vector 中的 rbegin 和 rend 函数 ;

      rbegin 和 rend 函数返回的同样是指针,不过和 begin、end 返回的不同,一个是从前往后返回,一个是从后往前返回;

      存储当前返回指针的变量用: vector<int>::reverse_iterator iter ;

      *(v.rbegin())   // 输出最后一个元素 ;

      *(v.rend() - 1) //  输出第一个元素 ;

    五、vector 中的 size、push_back、pop_back、inseart函数

      vector<int> v1( 5  , 10 ) ;

      v1.size()      // 返回v1 的大小 ;

      v1.push_back( 6 ) ;  // 在v1后继续添加一个元素6 ;

      v1.pop_pack() ;         // 将v1 的最后一个元素删除掉 ;

         insert  可以在vector对象的任意位置插入一个元素

      v1.insert(v1.begin() , 10) ;      // 在第一个元素的前面插入一个元素10 ;

      v1.insert(v1.begin()+1 , 10) ;    // 在第二个元素的前面插入一个元素10 ;

      v1.insert(v1.begin() , 5 , 10) ;    // 在第一个元素前面插入5个元素10 ;

      v1.insert(v1.end() , 5) ;   // 在最后插入一个元素 5 , 相当于v1.push_back(5) ;

      v1.insert(v1.end() , 5 , 10) ;     // 在最后插入5个元素10 ;

    六、vector中的 resize 函数

      resize函数主要用来重新定义容器的大小,如果比当前的大,可以自定义赋初值,也可以使用默认初值0 ;如果比当前的小,只取定义的部分;

      vector<int> v1(10 , 10) ;

      v1.resize(5) ;          // 原来的十个元素,现在只剩下五个 ;

      v1.resize(12,20) ;  // 原来的十个元素现在变成了十二个,新增加的部分用20来赋值 ;

    七、vector中的 at 函数

      at 函数用来在容器相应的位置存储对象;

      vector<int> v1(5 , 10) ;

      v1.at[2] = 2 ;    // 将第三个元素改为2,相当于v1[2] = 2 ;

    八、vector中的 erase 函数

         erase 函数用来删除容器中的数据元素 ;

      vector<int> v1( 5 , 10) ;

      v1.erase(v1.begin()) ;    // 删除第一个元素 ;

      v1.erase(v1.begin() , v1.begin() + 3) ;    // 删除前三个元素 ;

    对于vector这些好用的性质要比数组操作起来方便多了,以后要多多使用!

      

  • 相关阅读:
    BN
    框架中的DDP和buffer
    深度学习框架中的并行
    Transformer
    自监督表示学习Paper
    半监督学习paper阅读
    目标检测经典paper
    STM32_从SystemInit、__main到main() 已修正
    STM32启动代码分析及其汇编学习-ARM
    Rust 及其包管理Cargo的安装使用
  • 原文地址:https://www.cnblogs.com/scottding/p/3664897.html
Copyright © 2020-2023  润新知