美文网首页
Container - vector

Container - vector

作者: MelanDawn | 来源:发表于2022-11-14 11:12 被阅读0次

1. vector

类似 java 的 ArrayList

成员函数
\color{red}{ Access }
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实例的末尾元素
\color{red}{ Capacity }
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
\color{red}{ Iterators } *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;
\color{red}{ Modifier }
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尾部插入一个新元素,该新元素以第二个及后续参数作为其构造函数的参数

相关文章

网友评论

      本文标题:Container - vector

      本文链接:https://www.haomeiwen.com/subject/dnnkxdtx.html