C++ 中Vector相关知识小结

疫情所迫,希望用这种方法督促自己坚持学习。同时记录在找工作过程中的艰辛不易。博客内容持续增减修改,都为摘录和个人理解。欢迎各位批评指正其中错误,相互勉励,共同进步。

标准库类型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
发布了27 篇原创文章 · 获赞 4 · 访问量 4523

猜你喜欢

转载自blog.csdn.net/SGL_LGS/article/details/104593620
今日推荐