C++中的各种容器的使用方法

vector

vector是封装动态数组的顺序容器。元素相继存储,这意味着不仅可通过迭代器,还能用指向元素的常规指针访问元素。这意味着指向 vector 元素的指针能传递给任何期待指向数组元素的指针的函数。

构造函数

//空的vector容器
vector<int>v1;
//size为5,值的初始化为0的vector容器
vector<int>v2(5);
//size为5,值的初始化为1的vector容器
vector<int>v3(5, 1);
//创建vector时就初始化
vector<int>v4 = {
   
    1,3,4,5,7 };
//利用别的vector创建初始化vector
vector<int>v5(v4);
//指定起始与结束内容创建与初始化
vector<int>v6(v4.begin()+3, v4.end());

迭代器iterator

begin() 返回第一个元素的迭代器 
end() 返回最末元素的迭代器 
rbegin() 返回Vector尾部的逆迭代器 
rend() 返回Vector起始的逆迭代器 

访问元素

v.at(i)	//返回vector v指定位置的元素
v[i]	//返回vector v指定位置的元素
v.back() //返回最末一个元素 
v.front() //返回第一个元素 

插入与删除元素

void push_back( const TYPE &val ); //在Vector最后添加一个元素 
void pop_back(); //移除最后一个元素 
iterator erase( iterator loc );	//删除指定loc元素
iterator erase( iterator start, iterator end );	//删除[start,end)元素

v.push_back(3);	//vector最后添加元素3
v.pop_back();	//删除vector最后一个元素
v.erase(v.begin());//删除位置为begin的元素
v.erase(v.begin(),v.end());//删除区间[begin(),end())的元素

insert函数

//在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器, 
iterator insert( iterator loc, const TYPE &val );
//在指定位置loc前插入num个值为val的元素 
void insert( iterator loc, size_type num, const TYPE &val );
//在指定位置loc前插入区间[start, end)的所有元素
void insert( iterator loc, input_iterator start, input_iterator end );

v.insert(v.begin(),1);//在begin()位置插入元素1
v.insert(v.begin(),5,1);//在begin()位置插入5个值为1的元素
v.insert(v.begin(),v1.begin(),v1.end());//在begin()位置插入区间[v1.begin(),v1.end())的元素

deque

是有下标顺序容器,它允许在其首尾两段快速插入及删除。另外,在 deque 任一端插入或删除不会非法化指向其余元素的指针或引用。

构造函数

//无参,创建一个空双向队列 
deque();
//size - 创建一个大小为size的双向队列 
deque( size_type size );
//num and val - 放置num个val的拷贝到队列中 
deque( size_type num, const TYPE &val );
//from - 从from创建一个内容一样的双向队列 
deque( const deque &from );
//start 和 end - 创建一个队列,保存从start到end的元素
deque( input_iterator start, input_iterator end );

deque<int>d1;//空双向队列
deque<int>d2(5);//大小为5,值为0的双向队列
deque<int>d3(5,1);//大小为5,值为1的双向队列
deque<int>d4(d3);//创建一个与d3相同的双向队列
deque<int>d5
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值