容器元素类型至少满足两个约束:
(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
本文总结了C++中容器元素的使用要求,包括赋值、复制及比较等约束条件,并针对不同容器(如vector、list、set、map)的具体需求进行了详细说明。
2334

被折叠的 条评论
为什么被折叠?



