C++ <vector>

C++ 头文件<vector>

1.头文件结构

template < class T, class Alloc = allocator<T> > class vector; // generic template

- classes
- vector(类模板)
- vector<bool>(类模板)
- Functions
- begin(函数模板,起始迭代器)
- end(函数模板,超尾迭代器)

2.vector类模板

  • vector是用于存放一组相同类型的元素的容器,性质类似于数组,但是它是可以自动分配大小的动态数组。
  • 因为需要动态分配空间,所以当插入元素时需要重新分配,如果每一次插入都重新分配,消耗会很大,所以会提前确定比实际需要占用空间略大的capacity(容量)

1.容器属性

  • 严格的线性序列
  • 可以直接访问序列的元素,甚至可以用指针访问
  • 可以在末尾快速插入删除元素

2.模板参数

  • T:(当需要重新分配空间时,需要拷贝到新空间并且插入元素)
  • Alloc:用来定义分配内存空间的模型,默认是allocator

3.成员类型

成员类型 定义 注释说明
value_type 第一个模板参数 \
allocator_type 模板第二个默认参数 allocator
reference allocator_type::reference 默认的分配器:value_type &
const_reference allocator_type::const_reference 默认分配器:const value_type &
pointer allocator_type::pointer 默认分配器:value_type*
const_pointer allocator_type::const_pointer const value_type*
iterator 迭代器 可以转换成const_iterator
const_iterator 常量迭代器 \
reverse_iterator 反向迭代器 \
const_reverse_iterator 常量反向迭代器 \
different_type 有符号整型:iterator_traits::difference_type \
size_type 无符号整型,可以表达任何非负值的difference_type \

3.成员函数

1.默认函数

  • 构造函数
    • 空构造函数(默认构造函数)
    • fill constructor 用一个种类的元素的复制填充容器
    • range constructor 用区间[first,last)的数初始化vector
    • 拷贝构造函数
  • 析构函数
  • 赋值操作符函数

2.迭代器

  1. begin
  2. end
  3. rbegin
  4. rend
  5. cbegin
  6. cend
  7. crbegin
  8. crend

3.容量

  1. size
  2. max_size
  3. resize
  4. capacity
  5. empty
  6. reverse
  7. shrink_to_fit

4.元素访问

  1. operator[]
  2. at
  3. front
  4. back
  5. data

5.编辑修饰

  1. assign
  2. push_back
  3. pop_back
  4. insert
  5. erase
  6. swap
  7. clear
  8. emplace
  9. emplace_back

6.分配者

  1. get_allocator

7.非成员函数重载

  1. relation operators
  2. swap

8.模板特化

  1. vector<bool>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值