一:概述
vector是标准库中的类型,代表一个容器,集合。
容器里存放的是若干个相同的对象,使用时需要包含#include,
为了方便书写,也可以加上using namespace std;
例如:
vector<int> v1;//定义一个空的容器,里面每一个元素都是int类型
vector<vector <string>> v2;//容器里面的每一个类型都是一个容器。可以嵌套。
语法:vector<类型> 容器名;(vector是一个类模板,定义的方式和类模板有关)
注意:
vector<int &> v1; //写法错误,容器里不能放引用,因为引用是一个别名,不是对象。
二:定义以及初始化
(1)
vector<string> s1;//空的容器
(2)
vector<int> v1;
v1.push_back(1);//追加元素
vector<int> v2=v1;//把v1里的内容复制给v2
vector<int> v3(v1); //把v1里的内容复制给v3
(3)
vector<int> v1 = { 1,4,6 }; //c++11当中的初始化列表的方法进行初始化(即:{})
(4)
vector<int> v1 (10,5);//里面有10个元素,每个都是5
vector<string> s1(5, "txj");//有5个"txj"
vector<int> v2 (10);//里面有10个元素,每个都是0
附:一般来说使用()进行初始化,代表元素数量的意思,用{}进行初始化代表元素内容的意思。
三:常用操作
vector<int> v1;
if (v1.empty())//判断是否为空
{
cout << "v1为空" << endl;
}
vector<int> v2;
v2.push_back(1);//往末尾追加元素
v2.push_back(2);
vector<int> v3;
v3 = v2;//=进行赋值
vector<int> v4=v2;
v4.clear();//清空所有元素
vector<int> v5;
vector<int> v6;
if (v5 == v6)//判断是否相等,元素类型以及容器里的每一个元素相等
{
cout << "v5 == v6" << endl;
}
vector<int> v7;
v7.push_back(1);
cout << v7[0] << endl; //1,v[n]代表容器里的第n个元素,n从0开始
vector<int> v7;
cout << v7.size() << endl;//返回元素个数
四:范围for语句遍历容器
vector<int> v1 = { 1,4,7,9};
for (auto x : v1)
{
cout << x << endl;
}