1. vector
类似 java 的 ArrayList
成员函数 | ||
---|---|---|
operator[] |
reference operator[] (size_type n); const_reference operator[] (size_type n) const; 表明可以通过数组以角标方式访问,即将其视作指针 |
|
data() |
value_type* data() noexcept; const value_type* data() const noexcept; 获取该vector实例的首地址,即指针 |
|
at() |
reference at (size_type n); const_reference at (size_type n) const; 获取指定角标的元素 |
|
front() |
reference front(); const_reference front() const; 获取该vector实例的首个元素 |
|
back() |
reference back(); const_reference back() const; 获取该vector实例的末尾元素 |
|
empty() |
bool empty() const; 容器是否为空(没有元素) |
|
size() |
size_type size() const; 容器内元素的数量,非负数 |
|
capacity() |
size_type capacity() const; 容器已分配内存可存放元素的数量,一般略大于 size() |
|
max_size() |
size_type max_size() const; 最大的元素数量,像是固定值? 0x3FFFFFFF |
|
resize() |
void resize (size_type n, value_type val = value_type()); 容器的元素数量置为 n; 若 n 小于原大小,则从尾部开始删除,剩余n个元素,capacity不会变化; 若 n 大于原大小,则添加元素,若指定值,则新增元素都等于该值,若不指定则是0,capacity随之变化。 |
|
reserve() |
void reserve (size_type n); 请求 vector 的容量(capacity)至少可以包含 n 个元素。 若 n 小于原capacity,则无变化;若 n 大于原capacity,则capacity=n。 |
|
shrink_to_fit() |
void shrink_to_fit(); 使得 capacity = size |
|
*iterator 即可取到迭代器对应的元素 | ||
begin() |
iterator begin(); const_iterator begin() const;
|
|
end() |
iterator end(); const_iterator end() const;
|
|
cbegin() |
const_iterator cbegin() const noexcept; |
|
cend() |
const_iterator cend() const noexcept; |
|
rbegin() |
reverse_iterator rbegin(); const_reverse_iterator rbegin() const;
|
|
rend() |
reverse_iterator rend(); const_reverse_iterator rend() const;
|
|
crbegin() |
const_reverse_iterator crbegin() const noexcept; |
|
crend() |
const_reverse_iterator crend() const noexcept; |
|
clear() |
void clear(); 清空内部元素,size变成0,但capacity不变 |
|
push_back() |
void push_back (const value_type& val); 从尾部添加指定元素 |
|
pop_back() |
void pop_back(); 从尾部删除一个元素 |
|
insert() |
iterator insert (iterator position, const value_type& val); 向指定位置的前面,插入元素,返回的迭代器指向刚刚插入的元素 void insert (iterator position, size_type n, const value_type& val); 向指定位置的前面,插入 n 个指定值的元素 template <class InputIterator> void insert (iterator position, InputIterator first, InputIterator last); 向指定位置的前面,插入迭代器的 [first, last) 之间的元素 |
|
erase() |
iterator erase (iterator position); 删除指定迭代器的元素 iterator erase (iterator first, iterator last); 删除迭代器 [first, last) 之间的元素 |
|
swap() |
void swap (vector& x); 交换两个vector的所有元素 |
|
assign() |
void assign (size_type n, const value_type& val); 清空容器,指定容器的大小,并全部赋予初值 template <class InputIterator> void assign (InputIterator first, InputIterator last); 清空容器,将迭代器 [first, last) 之间的元素放入容器中 |
|
emplace() |
template <class... Args>iterator emplace (const_iterator position, Args&&... args); 在指定的位置(iterator)的前面,插入一个新元素,该新元素以第二个及后续参数作为构其造函数的参数 |
|
emplace_back() |
template <class... Args> void emplace_back (Args&&... args); 在vector尾部插入一个新元素,该新元素以第二个及后续参数作为其构造函数的参数 |
网友评论