标准库类型string和vector
创始人
2024-04-02 13:26:06
0

一、命名空间

	std::cin

std就是命名空间,
这个的含义是 :编译器应该从操作符左侧的名字所示的作用域std中去寻找cin

另一种方式就是在开头显式进行说明:

using std::cin;

这样一来后续就不用再去在每条语句中显式说明了。

需要注意的是,一般在头文件中不要包含命名空间的声明,这种声明会拷贝到所有引用此头文件的文件中去,可能会导致一些不可预料的错误和冲突

二、string类型

string类型:可变长字符串;

存在于头文件:#include中,而且定义于std命名空间中。

2.1 初始化string对象

在这里插入图片描述
其实这些初始化方式主要可以分为两类:
(1)拷贝初始化
使用了一个变量去初始化了另一个变量,被初始化变量是其他变量的副本

表征的话有“=”号的都是拷贝初始化

比如:

string s2 = s1
string s3 = "value"

(2)直接初始化
直接将初始值拷贝到变量中去

比如:

string s3("value")
string s4(n, 'c')

2.2 string对象的操作

在这里插入图片描述
总共来说有这些操作,分为以下几类

2.2.1 读写操作

(1)采用数据流iostream来对string进行读写

比如:

string s1, s2;
cin>>s1>>s2;
cout<

其中cin在读取时会忽略开头的空白(空格、制表符、换行符等),在遇到下一个空白时停止,算一个string变量

(2)读取任意数量的string

string类型结束时会有一个结束符在,因此可以一直循环,直到检测到结束符为止:

string s1;
while(cin>>s1){cout<

也可以使用getline按行去读入,直到文件末尾结束。getline在进行文件读写时使用较多,主要因为这样可以保留每一行中的空白字符:

string s1;
while(getline(s, s1)){cout<

2.2.2 获取大小

使用size()函数可以返回字符串中的字符数量,使用字符数量可以分段对于字符串进行操作

此处需要注意的是size函数的返回值类型

这个地方的返回值并不是简单的int,而是string::size_type类型,这种类型的细节不需要关注,需要注意的是它是无符号的

这样一来就得避免和有符号数去混用,比如一个负数n: 判断:s.size() < n,无符号数和负数n比较几乎都是true,导致错误

同时也经常使用empty()函数来判断字符串是否为空,当字符串为空时返回true,反之false。

2.2.3 其他string对象操作

(1)比较string对象
对于两个string对象的比较可以直接采用“==”、“>”、“<“、”<=“、”>="运算符进行比较。

==会依次比较string中的每一个字符,如果长度且字符相同则返回true

比较大小主要依次比较的是字母之间的相对顺序
(2)string对象相加

string对象之间相加可以直接使用”+“号

string s1 = "hello, ", s2 = "world";
string s3 = s1 + s2;	//s3(hello, world)

而且string对象也可以直接和字面值进行相加,比如:

string s1 = "hello";
string s2 = s1 + ",";//两个字面值不能相加,是错误的
string s3 = "hello" + ",";
string s4 = "hello" + "," + s1;
//这样则是正确的
string s4 = "hello" + s1 + ",";

(3)访问string对象
可以使用for循环依次访问

for (auto c:str){
...
}

也可以使用下标直接进行访问

三、vector

首先明确一点,vector是什么?

vector是一个类模板

模板可以看作是类或者函数编写的一份说明说。利用模板可以创建类或者函数,这就是实例化,实例化的时候需要指明类型,如:

vectornumber;
vector>str;
vectorsha;

vector可以容纳大多数类型的对象,但是由于引用不是对象,所以不能是引用类型。

3.1 定义和初始化vector对象

在这里插入图片描述

3.2 vector操作

在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...