stl容器vector笔记

在这里插入图片描述


  • std::vector 是封装动态数组的顺序容器。
  • 头文件#include <vector>
  • 常见操作复杂度
    • 随机访问——常数 O(1)
    • 在末尾插入或移除元素——均摊常数 O(1)
    • 插入或移除元素——与到 vector 结尾的距离成线性 O(n)

一、初始化

  • 以int为例构造vector
vector<int> v1();					//空构造
vector<int> v2 = {1, 2, 3, 4, 5};	//存入1、2、3、4、5
vector<int> v3(4);			    //开辟4个空间,值默认为0
vector<int> v4(6,1);		    //6个值为1的元素
vector<int> v5(v4);		        //拷贝构造,复制v4
vector<int> v6(v2.begin()+2, arr4.end()); //存入3、4、5

  • 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);

二、常用方法

在这里插入图片描述


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 ); //若new_cap大于当前的 capacity()则分配新存储空间

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

money的大雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值