vector 容器
开发工具与关键技术:Visual Studio、C++
作者:张国军
撰写时间:2019年05月03日
vector 是将元素置于一个动态数组中加以管理的容器。
vector 可以随机存取元素(支持索引值直接存取, 用[]操作符或 at()方法, 这个等下会详讲)。
vector 尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除元 素比较费时
那么我们下边来看一下vector容器的简单操作例子:
#include <iostream>
#include <vector>
//数组元素的 添加和删除
void main()
{
vector<int> v1;
cout << "length:" << v1.size() << endl; //当没有元素插入时,此时 vector 大小为 0
v1.push_back(1); //插入元素值为1
v1.push_back(3); //插入元素值为3
v1.push_back(5); //插入元素值为5
cout << "length:" << v1.size() << endl; //插入了 3 个数,此时 vector 大小为 3
cout << "头部元素:" << v1.front() << endl;
//修改 头部元素
//函数返回值当左值 应该返回一个引用
v1.front() = 11.5;
v1.back() = 55;
while (v1.size() > 0)
{
cout << "尾部元素:"<< v1.back() << endl; //获取尾部元素
v1.pop_back(); //删除尾部元素
}
}
vector 的遍历
vector 的遍历 通过数组的方式
#include <iostream>
#include <vector>
void printV(vector<int> &v);
void main()
{
vector<int> v1(10);
for (int i = 0; i<10; i++)
{
v1[i] = i + 1;
}
printV(v1);
}
void printV(vector<int> &v)
{
for (int i = 0; i<v.size(); i++)
{
cout << v[i] << " ";
}
}
提前把内存准备好,注意与之前构造时的语句不同,如果不提前把内存准备好,则无法通过数组方式遍历
vector 容器是动态数组,所以自然可以用数组的方式遍历,前提是必须把内存准备好
我们
#include <iostream>
#include <vector>
void printV(vector<int> &v);
void main()
{
vector<int> v1(10);
v1.push_back(100);
v1.push_back(200);
cout << "size: " << v1.size() << endl;
printV(v1);
}
void printV(vector<int> &v)
{
for (int i = 0; i<v.size(); i++)
{
cout << v[i] << " ";
}
}
先准备 10 个内存内存准备好,但是并没有初始化
然后在插入 1 个数 为 100
然后在插入 1 个数 为 200
然后我们可以从结果可以看到我们的vector长度为12,两个是我们后边添加的,前十个是我们一开始就给到的,但是我们 并没有初始化,但是从结果来看push_back帮我们初始化了。