C/C++ vector详解

05-28 1783阅读

要想了解STL,就必须会看:

cplusplus.comC/C++ vector详解https://legacy.cplusplus.com/

官方内容全都是英文的,可以参考:

C/C++初始识C/C++ vector详解https://blog.csdn.net/2301_77087344/article/details/138596294?spm=1001.2014.3001.5501

vector:向量,顺序表,是一个类模板,顺序容器

         vector类常用的函数如下:

1.构造函数


  • vector()://创建一个空vector
  • vector(int nSize)://创建一个vector,元素个数为nSize
  • vector(int nSize,const t& t)://创建一个vector ,元素个数为nSize,且值均为t
  • vector(const vector&)://赋值构造函数
  • vector(begin,end)://赋值[begin,end)区间内另一个数组的元素到vector中

    2.增加函数


    • void push_back(const T& x)://向尾部增加一个元素x
    • iterator insert(iterator it,const T& x)://向量中迭代器指向元素前增加一个元素x
    • iterator insert(iterator it,int n,const T& x)://向量中迭代器指向元素前增加n个相同元素x
    • iterator insert(iterator it,const_iterator first,const_iterator last)://向量中迭代器指向元素前插入另一个相同类型向量的[firs.last)间的数据

      3.删除函数


      • iterator erase(iterator it):删除向量中迭代器指向元素
      • iterator erase(iterator first,iterator last):删除向量中[first,last)中元素
      • void pop_back():删除向量中最后一个元素
      • void clear():情况向量中所有元素

        4.遍历函数


        • reference at(int pos)://返回pos位置元素的引用
        • reference front()://返回首元素的引用
        • reference back()://返回尾元素的引用
        • iterator begin()://返回向量头指针,指向第一个元素
        • iterator end()://返回为指针,指向向量最后一个元素的下一个位置
        • reverse_iterator rbein()://反向迭代器,指向最后一个元素
        • reverse_iterator rend()://指向第一个元素之前的位置

          5.判断函数


          • bool empty() const://判断向量是否为空,为空,则向量中无元素

            6.大小函数


            • int size() const://返回向量中元素的个数
            • int capacity() const: //返回当前向量中宏能容纳的最大元素值
            • int max_size() const://返回最大可允许的vector元素数量值

              7.其他函数


              • void swap(vector&);//交换连个同类型的数据
              • void assign(int n,const T& x);//设置向量中第n个元素为x
              • void assign(const_iterator first,const_iterator last)://向量中[first,last)中元素设置成当前向量元素

                示例:

                1.初始化


                1. #include  
                2. #include  
                3.   
                4. using namespace std;  
                5.   
                6. class A  
                7. {  
                8.     //空类  
                9. };  
                10. int main()  
                11. {  
                12.       
                13.     //int型vector  
                14.     vector vecInt;  
                15.   
                16.     //float型vector  
                17.     vector vecFloat;  
                18.   
                19.     //自定义类型,保存类A的vector  
                20.     vector vecA;  
                21.   
                22.     //自定义类型,保存指向类A的指针的vector  
                23.     vector vecPointA;  
                24.   
                25.     return 0;  
                26. }  
                1. #include  
                2. #include  
                3.   
                4. using namespace std;  
                5.   
                6. class A  
                7. {  
                8.     //空类  
                9. };  
                10. int main()  
                11. {  
                12.       
                13.     //int型vector,包含3个元素  
                14.     vector vecIntA(3);  
                15.       
                16.     //int型vector,包含3个元素且每个元素都是9  
                17.     vector vecIntB(3,9);  
                18.   
                19.     //复制vecIntB到vecIntC  
                20.     vector vecIntC(vecIntB);  
                21.       
                22.     int iArray[]={2,4,6};  
                23.     //创建vecIntD  
                24.     vector vecIntD(iArray,iArray+3);  
                25.   
                26.     //打印vectorA,此处也可以用下面注释内的代码来输出vector中的数据  
                27.     /*for(int i=0;i
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]