目录
STL是C++标准库的重要组成部分,vector容器在实际中非常的重要,它常见的接口使用我们都要熟悉,这一篇肝一波vector容器常见的接口使用,帮助大家深入理解
vector容器的接口使用
vector容器的初始化
//构造函数初始化
void test_vector1()
{
//存储int
vector<int>v1;
v1.push_back(1);
v1.push_back(2);
//存储double
vector<double>v2;
v2.push_back(1.1);
v2.push_back(2.2);
//存储string
vector<string>v3;
v3.push_back("李白");//
v3.push_back("杜甫");
v3.push_back("苏轼");
//用10个5初始化
vector<int>v4(10,5);
}
vector容器的遍历方法
//vector容器的遍历
void test_vector2()
{
vector<int>v1;
v1.push_back(1);
v1.push_back(2);
v1.push_back(3);
v1.push_back(4);
//1.下标+[]
for (size_t i = 0; i < v1.size(); ++i)
{
cout << v1[i] << " ";//打印1 2 3 4
}
cout << endl;
//2.迭代器
vector<int>::iterator it = v1.begin();
while (it != v1.end())
{
cout << *it <<" ";//打印1 2 3 4
++it;
}
cout << endl;
//3.范围for
for (auto e : v1)
{
cout << e << " ";//打印1 2 3 4
}
cout << endl;
}
vector容器的空间增长问题
//测试增容 vs下
void test_vector3()
{
size_t sz;
vector<int> v;
v.reserve(100);//提前开辟空间 可以减少扩容
sz = v.capacity();//初始容量
cout << "making v grow:\n";
for (int i = 0; i < 100; ++i)
{
v.push_back(i);
if (sz != v.capacity())
{
sz = v.capacity();
cout << "capacity changed: " << sz << '\n';//扩容1.5倍
}
}
//vector<int> v1;
//v1.resize(100, 1);// resize扩容同时初始化
v.resize(10);
cout << v.size() << endl;//打印10 resize扩容 不会缩容
cout << v.capacity()<<endl;//打印100
}</