四、近容器
数组 string bitset
五、迭代器
iterator和const_iterator 普通迭代器和常量迭代器
reverse_iterator和const_reverse_iterator 正向迭代器和反向迭代器
六、函数对象
greater和less
七、泛型算法
针对数据的其他操作
sort find find_if binary_search for_each
vector向量容器
底层数据结构,动态开辟数组,每次以原来空间大小二倍扩容
vectorvec;(优点,尾插、尾删、访问)
vec.push__back(20);末尾添加元素O(1) 可能导致容器扩容
allocate:allocate开辟空间\deallocate释放空间\construct构造\destroy析构
vec.insert(it,20); it迭代器指向的位置添加一个元素20 O(n)
vec.pop();末尾删除元素 O(1)
vec.erase(it);删除it迭代器指向的元素
vec.erase(迭代器区间)
operator[]:下标的随机访问vec[5] O(1)
iterator迭代器遍历
注意:对容器进行连续插入或者删除操作(insert/erase),一定要更新的迭代器,否则第一次insert/earse完成,迭代器就失效了
常用方法:
size()
empty()
reserve(20) vector预留空间,开辟空间不添加元素
resize(20) vector扩容,开辟空间,添加元素
swap 交换元素
vecotr特点:动态数组内存连续,2倍方