vector常见用法详解

vector常见用法详解

vector是一个线性顺序结构,相当于数组,可以不预先指定数组的大小,
并且能够自动扩建。创建一个vector后,它会自动在内存中分配一块连续的
内存空间进行数据储存,这个大小即capacity()函数的返回值。当储存的数据
超过分配的空间时,vector会重新分配一块内存块,但这样的分配是很耗时的,
它要将原来的数据复制到新的内存块中,销毁掉原来内存块中的对象,最后将
原来的内存空间释放掉。

需要头文件#include以及using namespace std;

初始化:
vector<int> c1; 
vector<int> c2(n);利用元素的default构造函数生成一个大小为n的vector 
vector<int> c3(n,5);产生一个大小为n的vector,每个元素值都是5 
vector<int> c4(c1);产生c1的副本

赋值:
for(int i=0;i<10;i++){
    c1.push_back(i);
    c2[i]=i;
}

vector元素个数:c1.size()

访问:
可以用下标访问:cout<<c1[5]<<endl;
或者用迭代器访问:
vector<int> ::iterator it1,it2;
it1=c1.begin();或者直接auto it1=c1.begin();
it2=c1.end();(--c1.end)才是最后元素地址
cout << *(it1+2) << endl;输出第3个元素

c1.assign(it1,it2);
将[it1,it2)区间(注意这里是左闭右开)中的数据赋值给c1 

c1.erase(it1);删除it1位置的数据,返回下一个数据的位置 
c1.erase(it1+t); 删除第t+1个元素
c1.erase(it1+i,it1+j);删除区间[it1+i,itq+j)的元素(左闭右开)

c1.clear();清空
c1.empty();若c1为空,返回值为1,否则为0

c1.capacity();当前已经分配的可以容纳的元素个数 

c1.assign(5,6);将5个6赋值给c1

vector可以直接赋值:
vector<int> vec;
auto vec1=vec;

vector可以sort:
sort(vec.begin(),vec.end());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值