C++ STL容器内元素的类型约束

本文总结了C++中容器元素的使用要求,包括赋值、复制及比较等约束条件,并针对不同容器(如vector、list、set、map)的具体需求进行了详细说明。

容器元素类型至少满足两个约束:

(1)、元素类型必须支持赋值运算;

(2)、元素类型的对象必须可以复制。


顺序容器,如vector、list,基本上满足上述两个约束即可

关联容器,如set、map出上述两个约束外,还要求键类型需要定义<操作符。


1、除引用类型外,所有内置或复合类型都可以用做元素类型。引用不支持一般意义的赋值运算(仅初始化时被复制)。

2、除输入输出(IO)标准库类型外,所有的标准库类型都可以用做元素类型。IO库类型不支持复制或赋值。


对于类类型来说:

(1)、可被赋值:类类型需要支持赋值运算符;

(2)、可被复制:类类型需要支持复制构造函数;

(3)、可被比较:类类型需要 < 操作符运算的支持(关联容器)。

除上述三个约束外,应用于容器的操作时,还需要满足:

(1)、具备Public访问的默认构造函数;

(2)、具备Public访问的析构函数;

(3)、关系操作符:如果对两个容器进行比较,则元素类型必须具备相应的关系运算。


如上很多参考自《C++ Primer 4th》,算是的一个总结。


ZhaiPillary

2016-10-25


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值