zoukankan      html  css  js  c++  java
  • STL--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):向量中迭代器指向元素前插入另一个相同类型向量的[first,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 rbegin():反向迭代器,指向最后一个元素
      • 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)中元素设置成当前向量元素


    • 代码测试
      #include<iostream>
      #include<vector>
      using namespace std;
      int main(){
          vector <int> arr1;//动态声明了int数组,没有指定大小
          vector <int> arr2(10,2);//元素个数10,元素值初始2
          vector <int> arr3(10);//元素个数10
      
          //vector <int *> arr2;//动态的声明了二维数组,没有指定大小
          //创建一个二维数组,m为行,n为列
          int m=3,n=3;
          vector< vector<int> > v(m, vector<int>(n) );
      
          //插入元素
          //void push_back(const T& x)   或者  iterator insert(iterator it,const T& x):
          arr1.push_back(10);
          arr1.push_back(9);
      
          cout<<"arr1数组内容:迭代器打印法"<<endl;
          for(vector<int>::iterator it1=arr1.begin();it1<arr1.end();it1++)
              cout<<*it1<<"  ";
          cout<<endl;
      
          cout<<"arr1数组内容:at函数打印"<<endl;
          for(int i =0;i<arr1.size();i++)
              cout<<arr1.at(i)<<"  ";
          cout<<endl;
      
          vector<int>::iterator it2=arr1.begin();
          //在迭代器开始位置插入1个8
          arr1.insert(it2,1,8);
          //在vector的首部插入arr1的首部到尾部的所有值(三个迭代器)
          arr1.insert(arr1.begin(),arr1.begin(),arr1.end());
      
          cout<<"arr1数组内容:at函数打印"<<endl;
          for(int i =0;i<arr1.size();i++)
              cout<<arr1.at(i)<<"  ";
          cout<<endl;
      
      
          //删除元素terator erase(iterator first,iterator last):
          arr1.erase(arr1.begin());
          //pop_back():删除向量中最后一个元素
          arr1.pop_back();
          //清空所有元素
          arr1.clear();
          cout<<"arr1数组内容:at函数打印"<<endl;
          for(int i =0;i<arr1.size();i++)
              cout<<arr1.at(i)<<"  ";
          cout<<endl;
      
      
          //大小函数,判断是否为空
      
          cout<<"arr2的大小(表示已用的元素个数):"<<arr2.size()<<endl;
          cout<<"arr2的容量:"<<arr2.capacity()<<endl;
          cout<<"arr2的最大的大小:"<<arr2.max_size()<<endl;
          cout<<"arr2的是否为空:"<<arr2.empty()<<endl;
      
      }
  • 相关阅读:
    Java安全之JNDI注入
    Visual Studio 2019 升级16.8之后(升级.Net 5),RazorTagHelper任务意外失败
    .Net Core 3.1升级 .Net 5后出现代码错误 rzc generate exited with code 1.
    重走py 之路 ——普通操作与函数(三)
    重走py 之路 ——字典和集合(二)
    设计模式结(完结篇)
    重走py 之路 ——列表(一)
    RestfulApi 学习笔记——分页和排序(五)
    RestfulApi 学习笔记——查询与过滤还有搜索(五)
    Android开发 Error:The number of method references in a .dex file cannot exceed 64K.Android开发 Error:The number of method references in a .dex file cannot exceed 64K
  • 原文地址:https://www.cnblogs.com/Kobe10/p/5778939.html
Copyright © 2011-2022 走看看