C++常用容器

容器简介

容器的概念

一种特殊的类型,其对象可以放置其它类型的对象(元素)

– 需要支持的操作:对象的添加、删除、索引、遍历
– 有多种算法可以实现容器,每种方法各有利弊

容器分类

序列容器:其中的对象有序排列,使用整数值进行索引
– 关联容器:其中的对象顺序并不重要,使用键进行索引
– 适配器:调整原有容器的行为,使得其对外展现出新的类型、接口或返回新的元素
– 生成器:构造元素序列

迭代器:

用于指定容器中的一段区间,以执行遍历、删除等操作

– 获取迭代器: (c)begin/(c)end ; (c)rbegin/(c)rend
注:c指的是const,如果使用cbegin,那么该迭代器只读不可写
– 迭代器分类:分成 5 类( category ),不同的类别支持的操作集合不同

C++ 标准库中提供了多种序列容器模板

– array :元素个数固定的序列容器
vector :元素连续存储的序列容器
forward_list / list :基于链表 / 双向链表的容器
– deque : vector 与 list 的折衷
– basic_string :提供了对字符串专门的支持
● 需要使用元素类型来实例化容器模板,从而构造可以保存具体类型的容器。
● 不同的容器所提供的接口大致相同,但根据容器性质的差异,其内部实现与复杂度不同。
● 对于复杂度过高的操作,提供相对较难使用的接口或者不提供相应的接口

1、array容器

array 容器模板:具有固定长度的容器,其内部维护了一个内建数组,与内建数组相比提供了复制操作

提供的接口

构造
成员类型: value_type 等
元素访问: [] , at , front , back , data

at:防止array访问元素时超过其长度,如果超过直接报错

front:返回第一个元素

back:返回最后一个元素

data:返回第一个元素的地址

容量相关(平凡实现): empty , size , max_size
empty:返回容器是否为空
size:返回容器的大小
max_size:返回容器的最大长度
array<int,4> x{1,2,3};
x[0]; //返回第0个元素1
x.at(0); //返回0位置的元素1    
x.at(100); //报错,因为100大于最大尺寸
x.front(); //返回1
x.back();  //返回3
x.data();  //返回第一个元素1的地址
x.empty(); //返回是否为空,对于array而言,只要max_size != 0,就一定为非空,因此返回0
x.size(); //返回尺寸3
x.max_size(); //返回最大尺寸4

2、vector

3、forward_list / list

4、deque

5、basic_string

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值