vector容器方法总结——中文博客最清晰完整的整理

注:

  • 构造函数默认为c++11

  • 函数原型省略了一些细节,只展示实际需要填写的情况(分配器已经隐藏了,需要可以去c++reference查看)

  • 参数栏表示传入的两个参数的意义而不是类型

  • 返回值栏表示类型而不是意义

  • 粉红色表示为c++11新特性

构造方法

方法(method)原型(prototype)参数(param)返回值(return)功能(function)
构造函数vector();default创建一个没有成员的空vector
构造函数vector (size_type n);空间数量ndefault创建一个含有n个元素大小(填充默认值)的vector
构造函数vector (size_type n, const value_type& val);空间数量n,填充值valdefault创建一个含有n个元素的vector,并把初始化,值为val
构造函数vector (InputIterator first, InputIterator last);开始位置的迭代器first,结束位置的迭代器lastdefault创建一个vector,并初始化,与两个迭代中间内容相同
构造函数vector (const vector& x);vector xdefault创建一个vector,并初始化,与x一致
构造函数vector (vector&& x);vector xdefault创建一个vector,并获取x的元素
构造函数vector (initializer_list<value_type> il)已经初始化的列表ildefault创建一个vector,并初始化,其中的元素与il中(按顺序)一致
析构函数N/AN/AN/AN/A
重载=vector& operator= (const vector& x);vector xvector&把x的内容赋给容器,并相应的改变大小

迭代器方法

方法(method)原型(prototype)参数(param)返回值(return)功能(function)
beginiterator begin() noexcept;迭代器返回一个迭代器,指向首个元素
enditerator end() noexcept;迭代器返回一个迭代器,指向最后一个元素的下一个元素
rbeginreverse_iterator rbegin() noexcept;迭代器返回一个反向迭代器,指向最后一个元素
rendreverse_iterator rbegin() noexcept;迭代器返回一个迭代器,指向第一个元素的前一个元素
cbeginconst_iterator cbegin() const noexcept;迭代器返回一个常量迭代器,指向首个元素
cendconst_iterator end() noexcept;迭代器返回一个常量迭代器,指向最后一个元素的下一个元素
crbeginconst_ reverse_iterator rbegin() noexcept;迭代器返回一个常量反向迭代器,指向最后一个元素
crendconst_ reverse_iterator rbegin() noexcept;迭代器返回一个常量迭代器,指向第一个元素的前一个元素

容量方法

方法(method)原型(prototype)参数(param)返回值(return)功能(function)
sizesize_type size() const noexcept;非负整数返回容器中元素的数量
max_size()size_type max_size() const noexcept;非负整数返回容器能容纳的最大数量
resizevoid resize (size_type n);空间大小n调整容器大小
capacity()size_type capacity() const noexcept;非负整数返回当前分配给向量的存储空间大小,以元素表示。
emptybool empty() const noexcept;bool返回容器是否为空
reservevoid reserve (size_type n);空间大小n设置容器最小容量为n,当元素大于这个容量时才会扩充
shrink_to_fitvoid shrink_to_fit();将容器的容量设置为容器内储存的元素数量

元素访问方法

方法(method)原型(prototype)参数(param)返回值(return)功能(function)
重载[]reference operator[] (size_type n);下标n引用返回下标为n的位置的引用
atreference at (size_type n);下标n引用返回下标为n的位置的引用
frontreference front();引用返回第一个元素的引用
backreference back();引用返回最后一个元素的引用
datavalue_type* data() noexcept;相应类型的指针返回指向容器的指针

修饰方法

方法(method)原型(prototype)参数(param)返回值(return)功能(function)
assignvoid assign (InputIterator first, InputIterator last);迭代器first,迭代器last替换容器中的内容并相应的改变其大小
assignvoid assign (size_type n, const value_type& val);空间大小n,填充值val替换容器中的内容并相应的改变其大小
assignvoid assign (initializer_list<value_type> il);已经初始化的列表il替换容器中的内容并相应的改变其大小
push_backvoid push_back (value_type&& val);添加的值val在容器尾部添加一个值为val的元素
pop_backvoid pop_back();删除容器最后一个元素
insertiterator insert (const_iterator position, const value_type& val);表示位置的迭代器position,插入值val在position后面插入一个值为val的元素
insertiterator insert (const_iterator position, size_type n, const value_type& val);表示位置的迭代器position,插入的数量n,插入值val在position后面插入n个值为val的元素
insertiterator insert (const_iterator position, InputIterator first, InputIterator last);表示位置的迭代器position,表示插入的开头的迭代器first,表示插入的结尾的迭代器last在position后面插入从first到last之间的元素
insertiterator insert (const_iterator position, initializer_list<value_type> il);表示位置的迭代器position,插入的列表il在position后面插入il中的各个元素
eraseiterator erase (const_iterator position);表示位置的迭代器position移除position位置的元素
eraseiterator erase (const_iterator first, const_iterator last);表示开头的迭代器first,表示结尾的迭代器last删除first与last之间的元素
swapvoid swap (vector& x);交换的vector x将容器与x中的内容交换
clearvoid clear() noexcept;清空容器
emplaceiterator emplace (const_iterator position, Args&&... args);表示位置的迭代器position,参数……迭代器将position前面插入值为参数的元素(一个或多个值)并返回插入的最后一个元素的迭代器
emplace_backvoid emplace_back (Args&&... args);参数在容器末尾插入值为参数的元素(一个或多个值)

分配器

方法(method)原型(prototype)参数(param)返回值(return)功能(function)
get_allocatorallocator_type get_allocator() const noexcept;分配器返回分配器的一个拷贝
  • 该文章为翻译c++ Reference结合其他资料整理得出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值