![在这里插入图片描述](https://img-blog.csdnimg.cn/6d9d43c4e8c04deaa6b2132814832302.png#pic_center)
std::vector
是封装动态数组的顺序容器。- 头文件
#include <vector>
- 常见操作复杂度
- 在末尾插入或移除元素——均摊常数 O(1)
- 插入或移除元素——与到 vector 结尾的距离成线性 O(n)
一、初始化
vector<int> v1();
vector<int> v2 = {1, 2, 3, 4, 5};
vector<int> v3(4);
vector<int> v4(6,1);
vector<int> v5(v4);
vector<int> v6(v2.begin()+2, arr4.end());
- assign函数给容器重新赋值,会清空容器内已有的元素
void assign( size_type count, const T& value );
template< class InputIt >
void assign( InputIt first, InputIt last );
void assign(std::initializer_list<T> ilist);
二、常用方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/96efefa774b9404ab0a74868eb4f477b.png#pic_center)
1. 访问元素at()、下标、data()、front()、back()
reference at( size_type pos );
const_reference at( size_type pos ) const;
reference operator[]( size_type pos );
const_reference operator[]( size_type pos ) const;
T* data() noexcept;
const T* data() const noexcept;
reference front();
const_reference front() const;
reference back();
const_reference back() const;
2. push_back()、pop_back()尾部增删元素
void push_back( const T& value );
void push_back( T&& value );
void pop_back();
3. insert()在pos前插入元素,返回插入位置
iterator insert( const_iterator pos, const T& value );
iterator insert( const_iterator pos, T&& value );
iterator insert( const_iterator pos,size_type count, const T& value );
iterator insert( const_iterator pos, InputIt first, InputIt last );
iterator insert( const_iterator pos, std::initializer_list<T> ilist );
4. erase()擦除元素,返回擦除元素后的元素位置
iterator erase( iterator pos );
iterator erase( const_iterator pos );
iterator erase( iterator first, iterator last );
iterator erase( const_iterator first, const_iterator last );
5. clear()清空容器
void clear() noexcept;
6. resize()改变容器元素个数
- 容器超过count的元素会被删除,不足的用默认值或value填充
void resize( size_type count );
void resize( size_type count, const value_type& value );
7. swap()容器交换
- 将内容与
other
的交换。不在单个元素上调用任何移动、复制或交换操作。所有迭代器和引用保持合法。尾后迭代器被非法化。
void swap( vector& other );
8. 容量
bool empty() const noexcept;
size_type size() const noexcept;
size_type max_size() const noexcept;
size_type capacity() const noexcept;
void reserve( size_type new_cap );