疫情所迫,希望用这种方法督促自己坚持学习。同时记录在找工作过程中的艰辛不易。博客内容持续增减修改,都为摘录和个人理解。欢迎各位批评指正其中错误,相互勉励,共同进步。
标准库类型Vector表示某一类对象的集。合因此也被叫做容器(container)。
//头文件定义方法
#include<vector>
using std::vector;
一、Vector的定义和初始化
需要注意圆括号与花括号的区别
//注意以下几种定义方法的区别
vector<int> v1; //空间大小未知
vector<int> v2(10,42); //10个42
vector<int> v3{10,42}; //花括号,两个元素10和42
vector<int> v4(10); //空间大小为10
vector<int> v5{10}; //包含一个元素为10
vector<string> v6(10); //10个字符串类型
vector<string> v7(10,"Hi!"); //10个字符串类型都为“Hi!”
//也可以定义二维列表
vector<vector<int>> v8;
vector<vector<string>> v9;
二、Vector的基本操作
以下定义几种vector常用的基本操作
vector<int> v1; int a;
v1.push_back(a); // 在v1末尾添加元素a
v1.empty(); // 如果为空则返回真,否则返回假
v1.size(); // 返回v1中元素的个数
v1 == v2; // 比较两个vector对象,类似还有<,<=,>,>=
需要注意的一点,容易出错!!!(只能对确知已存在的元素执行下标操作)
vector<int> v;
v[0] = 3; //会报错,因为v没有明确定义空间大小
//修改为以下情况就不会报错
vector<int> v(10); //分配了确定数量的内存空间大小
v[0] = 3 ;
因此用push_back为vector对象添加新的元素。其次在定义vector的时候,尽量不要指定其大小,而用动态的存储空间,防止在执行增删改查的时候缓冲区溢出。
示例代码段一:往容器中添加100个类型为int的元素
vector<int> v;
for(int i=0;i<100;++i)
v.push_back(i);
示例代码段二:往容器中输入添加不定量的string类型
vector<string> v;
string word;
while(cin>>word)
v.push_back(word);
示例代码段三:不开辟新的内存空间改变vector中的值
vector<int> v = {0,1,2,3,4,5,6,7,8,9};
for (auto &temp : v) //将temp定义成引用类型,实现赋值功能
temp *= temp; //将v中的元素平方
for (auto temp : v) //注意此处的temp和上面的定义区别
cout << temp << endl; //输出为 0,1,4,9,16,25,36,49,64,81