Vector容器
Vector are sequence containers representing arrays that can change in size.
void test_vector1()
{
vector<int> v1;
v1.push_back(1);
v1.push_back(2);
v1.push_back(3);
v1.push_back(4);
for(size_t i = 0; i < v1.size(); ++i)
{
cout << v1[ i ] << " " ;
}
cout << endl;
}
vector<int>::iterator it1 = v1.begin();
while (it1 != v1.end())
{
cout << *it1 << " " ;
++it1 ;
}
cout << endl;
for(auto e: v1)
{
cout << e << " " ;
}
cout << endl:
vector<int> v2(10, int());
cout << int() <<endl;
Vector迭代器失效问题
insert/erase 导致迭代器失效
bit::vector
auto rit1 = v1.rbegin();
while (rit1 != v1.rend())
{
cout << *rit1 << " " ;
++rit1;
}
void print_vector(const vector<int>& v)
{
vector<int>::const_iterator it=v.begin();
while(it != v.end())
{
cout << *it << " ";
++it;
}
cout << endl;
}
Vector 如何增容?增容比一定是以2倍增容吗?
vs: 1.5倍
g++ : 2倍
Vectors are sequence containers representing arrays that can change in size.
Member function(成员函数) | 作用(目的) |
---|
constructor | 构造vector |
destructor | 摧毁vector |
operator= | 赋值内容 |
Iterator(迭代器) | 作用(目的) |
---|
begin | 返回开头迭代器 |
end | 返回末尾迭代器 |
rbegin | 返回反向开头反向迭代器 |
rend | 返回反向末尾的反向迭代器 |
cbegin | 返回开头常量迭代器 |
cend | 返回末尾常量迭代器 |
crbegin | 返回反向开头常量反向迭代器 |
crend | 返回反向末尾常量反向迭代器 |
Capacity | 作用(目的 |
---|
size | 返回大小 |
max_size | 返回最大值 |
resize | 改变大小 |
capacity | 返回存储区域的大小 |
empty | 判断是否为空 |
reserve | 请求一个容量的改变 |
shrink_to_fit | 缩减容量 |
Element access | 作用(目的) |
---|
operator[] | 访问元素 |
at | 访问元素 |
front | 访问第一个元素 |
back | 访问最后一个元素 |
data (c++11) | 访问数据 |
Modifiers | 作用(目的) |
---|
assign | 增加vector内容 |
push_back | 在末尾增加元素 |
pop_back | 删除最后一个元素 |
insert | 插入 元素 |
erase | 删除元素 |
swap | 交换内容 |
clear | 清空内容 |
emplace | 构造并插入元素 |
emplace_back | 构造并在末尾插入元素 |