C++中的vector容器详解及初始化方式

正文: 在C++中,vector是一种非常常用的容器,可以方便地存储和操作一组数据。本文将详细介绍vector容器的定义、初始化方式以及一些常见操作。

1、vector类型简介:  

vector是标准库中的容器,可以将其他对象装入其中。在使用vector之前,需要包含头文件要用头文件#include<vector>。vector本身是一个类模板,通过在vector后添加一对<>,内部放置类型信息,可以实例化一个完整的类类型。

示例:

vector<int> vjihe; // 定义一个保存int类型数据的vector对象
vector<student> studlist; // 定义一个保存student类型数据的vector对象
vector<vector<string>> strchuan; // 定义一个保存vector<string>类型数据的vector对象
	vector  当成类型(残缺类类型)
	vector<int> : 在vector之后加一对<>,<>内部放上类型信息。(这才是一个完整的 类 类型)
	vector<student>studlist;
	vector<vector<string>>strchuan;//可以,该集合里面每一个元素又是一个vector<string>对象;集合套集合

注意:vector不能装引用类型,因为引用是别名而不是对象。

不能装引用类型:
vector<int &>vjihe;//引用是个别名,不是对象,不是对象不能往vector里面放

2、定义和初始化vector对象: 

a) 空vector: 通过不传递任何参数,创建一个空的vector对象,此时vector中不包含任何元素。

示例:

vector<string> mystr; // 创建一个空的string类型的vector对象
mystr.push_back("abcde");
mystr.push_back("fg");
cout << mystr[0] << endl; // 输出abcde
cout << mystr[1] << endl; // 输出fg

b) 元素拷贝的初始化方式: 可以通过将一个vector对象的元素拷贝给另一个vector对象来初始化。

示例:

vector<string> mystr2(mystr); // 将mystr的元素拷贝给mystr2
vector<string> mystr3 = mystr; // 将mystr的元素拷贝给mystr3

c) 列表初始化: 在C++标准中,可以使用列表初始化方式给vector赋值,使用{}括起来。

示例:

vector<string> mystr4 = { "aaaa", "bbb", "ccc" };

d) 创建指定数量的元素: 可以使用(元素数量, 元素值)的方式创建指定数量的元素,其中元素数量的概念一般使用()表示。

示例:

vector<int> ijihe(15, -200); // 创建15个int类型的元素,每个元素的值是-200
vector<string> sjihe(5, "hello"); // 创建5个string类型的元素,每个元素的值是hello
vector<int>ijihe(20);//20个元素,[0]——[19];每个元素为0;
vector<string>sjihe(5);//5个元素,小标0-4,每个元素值为"";

e) 多种初始化方式: ()一般表示对象中元素数量的概念,{}一般表示元素内容的概念,但并不是绝对的规定。

示例:

vector<int> i1(10); // 表示10个元素,每个元素值是缺省的0
vector<int> i2{ 10 }; // 表示一个元素,这个元素的值是10
vector<string> s1{ "hello" }; // 表示一个元素,内容是hello
vector<string> s2{ 10 }; // 表示10个元素,每个元素都为""
vector<string> s3{ 10, "hello" }; // 表示10个元素,每个元素的内容都是hello
vector<int> i3(10, 1); // 表示10个元素,每个元素的值为1
vector<int> i4{ 10, 1 }; // 表示两个元素,第一个元素为10,第二个元素为1

注意:使用{}进行初始化时,{}中的值的类型必须与<>中的类型相同。

vector<int>i5{"hello"};//语法错误。

综上所述,本文详细介绍了C++中的vector容器的定义、初始化方式以及常见操作。掌握了这些内容,可以更加灵活地使用vector来存储和操作数据。希望本文对读者有所帮助。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值