c++ vector使用

转自:

1、https://www.cnblogs.com/KyleDeng/p/9243666.html

2、https://blog.csdn.net/mr_sandman1994/article/details/80252559

 

变量声明

vector<vector<int> > 变量名;

添加行

vector<vector<int> > v2d;

for(int i=0;i<n;i++)

{
  v2d.push_back(vector<int>());//往v2d里添加行

}

v2d.pop_back();//删除一行,由后向前。

 

vector<vector <int> > array(3);//定义了行数为3列数不定的二维数组

array.size()//返回二维数组的行数

array[0].size()//返回二维数组第一行的列数

遍历二维vector中的元素

int m=v2d.size();//行数不定所以要求出v2d的长度。

for(int i=0;i<m;i++)

{

  for(int j=0;j<n;j++)

  {

    v2d[i][j]=0;

  }

}//依次访问v2d内的元素

#include<bits/stdc++.h>
using namespace std;
vector<vector<int> > v2d;
int main()
{
    for(int i=0;i<5;i++)
    {
        v2d.push_back(vector<int>());//不断往v2d里加行 
    }
    for(int i=0;i<v2d.size();i++)//行 
    {
        for(int j=0;j<5;j++)//添加5列 
        { 
            v2d[i].push_back(i*j);
        }
    }
    v2d.pop_back();
    for(int i=0;i<v2d.size();i++)
    {
        for(int j=0;j<5;j++)
        {
            cout<<v2d[i][j]<<" ";//使用下标访问 
        }
        cout<<endl;
    }
    return 0;
}

二维向量的属性与一维向量相同
  1>. a.size()                 //获取向量中的元素个数
    2>. a.empty()                //判断向量是否为空
    3>. a.clear()                //清空向量中的元素
    4>. 复制
        a = b ;            //将b向量复制到a向量中
    5>. 比较
        保持 ==、!=、>、>=、<、<= 的惯有含义 ;
        如: a == b ;    //a向量与b向量比较, 相等则返回1
    6>. 插入 - insert
        ①、 a.insert(a.begin(), 1000);            //将1000插入到向量a的起始位置前
        ②、 a.insert(a.begin(), 3, 1000) ;        //将1000分别插入到向量元素位置的0-2处(共3个元素)        
        ③、 vector<int> a(5, 1) ;
            vector<int> b(10) ;
            b.insert(b.begin(), a.begin(), a.end()) ;        //将a.begin(), a.end()之间的全部元素插入到b.begin()前
    7>. 删除 - erase
        ①、 b.erase(b.begin()) ;                     //将起始位置的元素删除
        ②、 b.erase(b.begin(), b.begin()+3) ;        //将(b.begin(), b.begin()+3)之间的元素删除
    8>. 交换 - swap
        b.swap(a) ;          //a向量与b向量进行交换     
    9>. a.back();           //获取a向量最后一个元素
    10>. a.front            //获取a向量的第一个元素    
    11>. a.pop_back();      //删除a向量的最后一个元素
    12>.a.capacity(); //返回a在内存中总共可以容纳的元素个数
    13>.a.rezize(10); //将a的现有元素个数调至10个,多则删,少则补,其值随机
    14>.a.rezize(10,2); //将a的现有元素个数调至10个,多则删,少则补,其值为2
//使用下面的函数需要包涵头文件
#include<algorithm>
(1)sort(a.begin(),a.end()); //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列
(2)reverse(a.begin(),a.end()); //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,1
(3)copy(a.begin(),a.end(),b.begin()+1); //把a中的从a.begin()(包括它)到a.end()(不包括它)的元素复制到b中,从b.begin()+1的位置(包括它)开始复制,覆盖掉原有元素

(4)find(a.begin(),a.end(),10); //在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值