记录std::vector的使用,部分用法涉及到c++11
概述:序列型容器,顺序删除或储存时效率较高,指定位置插入or删除效率不及其他容器。所占空间略大于实际元素所占空间,是为了避免经常调用reallocate,而让capacity(占用空间)保持大于size(已用空间)。
内置类型:
value_type: 传入的T
reference: value_type&
iterator: 迭代器
reverse_iterator: ++递减的迭代器
size_type: 调用相关方法时需传入的参数类型
const前缀:const_reference,const_iterator...
相关方法:
返回迭代器:
begin,end,cbegin,cend,rbegin,rend...
capacity,size相关:
size:return the number of elements
max_size:maximum size
resize: 保留前n个元素或用尾元素填充多出来的尺寸,若新尺寸大于capacity,则自动reallocate增大capacity
capacity: vector所占空间,resize<=capacity,自动reallocate增大capacity时capacity会增大为原来的两倍
empty:return bool
reserve: modify the capacity of the vector,it does not work if the new capacity is smaller than size
访问元素:
return reference: [],at,front,back
return pointer: data(容器内存储地址连续,可当做数组指针使用)
修改元素:
assign:重置vector并指定新元素,可由其他vector中的迭代器对/{}数组/一系列相同的值来指定
用法如下:
range (1)
template <class InputIterator>
void assign (InputIterator first, InputIterator last);
fill (2)
void assign (size_type n, const value_type& val);
initializer list (3)
void assign (initializer_list<value_type> il);
insert: insert a/some new elements in the vector
erase: 删除部分元素
swap: 交换两个vector的值
clear :清除所有元素
概述:序列型容器,顺序删除或储存时效率较高,指定位置插入or删除效率不及其他容器。所占空间略大于实际元素所占空间,是为了避免经常调用reallocate,而让capacity(占用空间)保持大于size(已用空间)。
内置类型:
value_type: 传入的T
reference: value_type&
iterator: 迭代器
reverse_iterator: ++递减的迭代器
size_type: 调用相关方法时需传入的参数类型
const前缀:const_reference,const_iterator...
相关方法:
返回迭代器:
begin,end,cbegin,cend,rbegin,rend...
capacity,size相关:
size:return the number of elements
max_size:maximum size
resize: 保留前n个元素或用尾元素填充多出来的尺寸,若新尺寸大于capacity,则自动reallocate增大capacity
capacity: vector所占空间,resize<=capacity,自动reallocate增大capacity时capacity会增大为原来的两倍
empty:return bool
reserve: modify the capacity of the vector,it does not work if the new capacity is smaller than size
访问元素:
return reference: [],at,front,back
return pointer: data(容器内存储地址连续,可当做数组指针使用)
修改元素:
assign:重置vector并指定新元素,可由其他vector中的迭代器对/{}数组/一系列相同的值来指定
用法如下:
range (1)
template <class InputIterator>
void assign (InputIterator first, InputIterator last);
fill (2)
void assign (size_type n, const value_type& val);
initializer list (3)
void assign (initializer_list<value_type> il);
insert: insert a/some new elements in the vector
erase: 删除部分元素
swap: 交换两个vector的值
clear :清除所有元素