标准库类型string和vector
创始人
2024-01-18 16:30:50
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操作

在这里插入图片描述

相关内容

热门资讯

学习笔记20230319 目录 一、final 二、List和Set 三、HashMap扩容机制原理 四、ArrayList...
arcpy基础篇(2)-访问空... 1.检查数据的存在性 在Python脚本中,可以使用Exists函数来检查当前工作空间...
幼儿园毕业典礼活动方案 关于幼儿园毕业典礼活动方案(通用10篇)  为有力保证事情或工作开展的水平质量,常常需要预先准备方案...
消防应急培训演练方案 消防应急培训演练方案  为了确保工作或事情顺利进行,通常需要预先制定一份完整的方案,方案是综合考量事...
同学聚会活动方案 同学聚会活动方案(精选15篇)  为了确保工作或事情能高效地开展,预先制定方案是必不可少的,方案的内...
国务院关于职工工作时间的规定 (1994年2月3日中华人民共和国国务院令第146号发布 根据1995年3月25日《国...
部门团建活动方案 部门团建活动方案(2篇)  为了确保事情或工作得以顺利进行,常常需要预先制定方案,方案指的是为某一次...
C语言函数:判断字符函数,判断... iscntrl:判断是否是控制字符isspace:判断是否是空白字符...这些函数的参数都是一个字符...
内核实验(八):实现O-NON... 一、篇头 继续使用qemu调试内核的实验。本章复习阻塞与非阻塞IO的概念和机制,然后对...
门店运营计划书 门店运营计划书(通用8篇)  光阴迅速,一眨眼就过去了,又迎来了一个全新的起点,此时此刻我们需要开始...
JavaWeb——Idea模板... Idea模板创建Servlet 第一步  第二步  第三步  此处的Servlet模板也可以定...
综合实践活动方案 综合实践活动方案(通用23篇)  为了确保工作或事情有序地进行,往往需要预先制定好方案,方案是从目的...
青少年体能训练计划方案 青少年体能训练计划方案  青少年体能训练计划方案(通用10篇)  为有力保证事情或工作开展的水平质量...
全国爱牙日活动方案   2014年9月20日是我国第二十四个全国“爱牙日”,为发挥家庭的优势和作用,提高家庭成员口腔保健...
第5讲 cameraserve... 本讲是Android Camera Native Framework专题的第5讲,我们...
11-STM32F1 -DMA... 11-STM32F1 -DMA(1) DMA:Data Memory A...
促销活动方案 实用的促销活动方案集锦9篇  为了确保工作或事情有序地进行,常常需要预先制定方案,方案是书面计划,是...
清明节主题党日活动方案 清明节主题党日活动方案(通用7篇)  为了确保活动有序有效开展,我们需要事先制定活动方案,活动方案是...
施工现场扬尘专项防治方案 施工现场扬尘专项防治方案  什么是方案  方案是从目的、要求、方式、方法、进度等都部署具体、周密,并...
家电促销活动方案 家电促销活动方案通用15篇  为保证事情或工作高起点、高质量、高水平开展,往往需要预先进行方案制定工...