目录
Vector概述
vector是C++中的一个容器,它可以创建一个可以自动扩容的数组
Vector的创建
正常情况下,我们会用这两种方式创建数组
int p[100]; //传统数组,创建时数组大小已经决定
int n;
cin >> n;
int* p = new int[n];//动态创建数组,需要手动输入n来决定数组的初始大小
如果既不想限制数组大小,又不想手动输入,我们通常会使用到vector容器
#include <iostream>
#include <vector> //需要包含此头文件
void main(){
std::vector<int> p; //创建了一个可以自动扩容的数组,用p命名
p.push_back(2); //push_back为向数组中添加值
p.push_back(6);
p.push_back(13);
p.push_back(9);
std::cout << p[0] << " " << p[2]; //输入p数组内下标为0和2的值
}
Vector的定义
template <typename T>
class Vector{
private:
T *data;
}
vector类似于此类的定义
可以存储任意类型的元素
#include <vector> //需要包含此头文件
#include <iostream>
void main(){
std::vector<int> p; //创建了一个可以自动扩容的数组,用p命名
p.push_back(2.1);
p.push_back(6.2);
p.push_back(13.33);
p.push_back(9.66);
}
注意:模板定义之后只能向数组内插入同一类型的数据,若插入不同类型数据会报错
std::vector<int> p;
p.push_back(2);
p.push_back(6.33);//不会报错,因为第二行指定的是整形数组,但是此时插入的元素是6而不是6.33
p.push_back("Tom");//报错!!! string类型的数据无法插入int型数组中
调用Vector中的元素
#include <vector> //需要包含此头文件
#include <iostream>
using namespace std;
void main(){
vector<int> p = {2, 3, 15, 8, 7};
p[0] = 7; //访问下标为0的元素,改为7
p.push_back(20); //添加一个元素
cout << p[0] + p[5] << endl;
cout << p.size() << endl; //输出数组的大小
}
总结
本文解释了vector容器的定义及创建,以及它的使用和注意事项,之后会继续总结迭代器和STL算法,敬请期待