赞
踩
初始化
- 每个容器类都提供了一个default构造函数、一个copy构造函数、一个析构函数
赋值和swap()
- 当你对着容器赋予元素时,来源容器的所有元素被复制到目标容器内,后者原本的元素全被移除。所以,容器的赋值动作代价相对高昂
- 自C++11起,可以使用move assignment语义取代上述行为。所有容器都提供move assignment操作符。基于效率考虑,如果赋值后右侧容器的内容不再被使用,应该使用这种赋值手法。例如:
- 自C++98开始,所有容器都提供成员函数swap(),所有容器都提供成员函数swap(),用来置换两容器的内容。实际上,它只是置换若干内部pointer,所以其保证常量复杂度
- 注意,array容器的swap()行为略有不同。由于它无法只是在内置换pointer,所以其swap()拥有线型复杂度,而且原本存在的迭代器和reference在swap发生之后,指向的是同一容器的不同元素
与大小相关的函数
- 所有容器都提供三个与大小相关的操作函数
- empty()
- size()
- max_size()
比较
- 除了无序容器之外,常用的比较操作符==、!=、<、<=、>、>=
- 若要比较两个不同类型的容器,必须使用STL比较算法
元素访问
- 所有容器都提供迭代器接口
- 因此它们都支持range-based for循环
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。