template
template<typename T>
T square(T x){
return x * x;
}大大减少了代码量, 不必为了多种数据类型创建相似的函数, 模板函数可以自动推导实参类型, 但是模板类能推导, 所以创建模板类实例需要指定T.
iterator
行为类似指针, 通过它能遍历容器

vec.end()未定义, 所以不能访问.
algorithms
并不直接作用在容器上, 而是为iterator服务.
containers
- Sequence containers
- vector
- deque
- list
- forward list
- array
- Associative containers
- set, multiset
- map, multimap
- Unordered containers
- Unordered set/multiset
- Unordered map/multimap
sequence container
- vec[idx]无范围检查/vec.at(idx)有范围检查, 抛出range_error
遍历
for(int i; i < vec.size(): i++)
//anything elsefor(auto i = vec.begin(); i != vec.end(); i++)
//anything elsefor(auto i : vec) //c++ 11
//anything elsecommon member functions
- empty: 判空
- size
- clear: 清空
- swap: 交换内容物
- insert
- erase
vector特性
- 头插慢
- search慢
Deque特性
- 中间插入满
- search慢
list特性
- 插入快
- 不能随机访问
- search慢