容器补充


分类:顺序容器和关联容器

顺序容器是按照元素在容器中的位置顺序存储和访问元素,而关联容器则是通过键来存储和读取元素。

1、  顺序容器

vector:快速随机访问

list:快速插入删除

deque:双端队列

容器适配器:根据容器的类型而提供操作,通过定义新的操作接口来使用基础的容器类型。

stack先进后出栈;queue:先进先出队列;priority_queue:有优先等级管理的队列

(1)    初始化:

用已存在同类型容器初始化:vector<double> dvec(dvec2);

使用迭代器一个一个初始化,注意初始化之前要给容器分配空间

指定大小填充,如果没有填充的话默认为0:vector<string> svec(9,”good”);

可以用const vector<int>::size_type vector_size=99;确定容器的大小,等效于int;

const vector<int>::size_type vector_size=99;

vector<string> svec(vector_size,”good”);

(2)    顺序容器操作

添加元素:push_back(),push_front()

插入元素:insert(p,t);迭代器p前插t  insert(p,n,t);  p前插入n个t   insert(p,b,e);p插b,e之间元素;

删除元素:pop_front();pop_back();clear();erase(p);erase(b,e)

容器大小:size()元素个数,size_type类型

          max_size()最大容量

          empty()是否为空,若为空,返回true

          resize(n)调整容器大小,使其能容纳n个元素

          resize(n,t)容纳n个元素,新添加的填充为t

2、  关联容器

map(包含头文件map)

(1)初始化:map<k,v>m   k为键值类型,v为元素类型;map<k,v>m(m1)

key_type+mapped_type=value_type

(2)操作:m.insert(e)//e是valu_type的值,如果e.first(键值)不在m中,则插入e.second,否则保持m不变。

m.insert(beg,end); m.insert(iter,e)

m.count(k)返回m中k出现的次数,最大为1

m.find(k)返回k键值的迭代器,如果没有,返回end

m.erase(k)返回size_type类型的值,表示删除个数;m.erase(p)删除p指向的元素,不能为空;m.erase(b,e)删除b,e之间的元素,不能为空。

set(包含头文件set):和map的区别再与不能认为规定键值

multimap和multiset,一个键值可以对应多个实例。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值