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 | 构造并在末尾插入元素 |