标准库类型string和vector

news/2024/5/17 17:56:37/文章来源:https://blog.csdn.net/weixin_41997940/article/details/127327775

一、命名空间

	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<<s1<<s2<<endl;

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

(2)读取任意数量的string

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

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

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

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

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是一个类模板

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

vector<int>number;
vector<vector<string>>str;
vector<shape>sha;

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

3.1 定义和初始化vector对象

在这里插入图片描述

3.2 vector操作

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_410032.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java垃圾回收器

Java垃圾回收器1 GC分类与性能指标1.1 垃圾回收器概述1.2 垃圾回收器分类1.2.1 按照线程分1.2.2 按照工作模式分1.2.3 碎片处理方式分1.2.4 工作的内存区间分1.3 评估GC的性能指标1.4 吞吐量与暂停时间的对比说明1.4.1 吞吐量1.4.2 暂停时间1.4.3 高吞吐量 VS 暂停时间2 垃圾回…

非常实用的Visual Studio Code快捷键(2) 欢迎各位大侠补充

折叠或展开代码 代码须易于理解并且要记录在案。可以使用以下快捷键轻松折叠代码中次重要的部分&#xff1a; 按_Ctrl Shift [_ 进行折叠。按_Ctrl Shift ]_ 展开 导航到特定行 如果要转到包含数千行的文件中的所需行。只需执行以下操作&#xff1a; 按_Ctrl G_&#x…

wireshark测试tcp三次握手与四次挥手

wireshark 选择Loopback来监听本地网络。 监听的内容是分三大模块的&#xff1a; 封包列表的面板中显示&#xff0c;编号&#xff0c;时间戳&#xff0c;源地址&#xff0c;目标地址&#xff0c;协议&#xff0c;长度&#xff0c;以及封包信息。 你可以看到不同的协议用了…

网课搜题接口-掘光者题库系统

网课搜题接口-掘光者题库系统 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&am…

Hive与SparkSQL语法差异

一、相同函数差异 1、Spark运行时用到的hash函数&#xff0c;与Hive的哈希算法不同&#xff0c;如果使用hash()&#xff0c;结果和Hive的hash()会有差异 2、Hive和SparkSQL使用grouping sets生成的GROUPING_ID不一致 3、regexp_extract未匹配上的话&#xff0c;在HIVE里返回…

Hive事务表 (Transactional Tables)

文章目录1. 为什么要使用事务表&#xff1f;2. 创建使用事务表1. 为什么要使用事务表&#xff1f; Hive 原本是不支持事务的&#xff0c;也就是不支持 增删改(insert、delete、update)、回滚等 操作的。因为&#xff1a; Hive的核心目标是&#xff1a;将已经存在的结构化数据文…

大学生影视主题网页制作 HTML+CSS+JS仿360影视网站 dreamweaver电影HTML网站制作

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

加密后的数据如何进行模糊查询

文章目录如何对加密后的数据进行模糊查询?方法1&#xff1a;先解密在查询方法2&#xff1a;在数据库实现加密算法函数第一种思路&#xff1a;在数据库实现加密算法函数第二种思路&#xff1a;对密文数据进行分词组合手机号模糊查询姓名模糊查询姓名精确查询&#xff08;地址也…

Mysql 事务原理分析

文章目录1、事务1.1、概念1.2、事务控制语句1.3、ACID 特性1.3.1、原子性 A1.3.2、一致性 C1.3.3、隔离性 I1.3.4、持久性 D1.4、undo log1.5、redo log2、隔离级别2.1、隔离级别的分类2.1.1、读未提交 RU2.1.2、读已提交 RC2.1.3、可重复读 RR2.1.4、可串行化 SC2.2、并发读异…

【Linux】UDP、TCP协议

目录 前言 1.UDP协议 1.1. UDP协议段格式 1.2. UDP的特点 1.3. UDP的缓冲区 2. TCP协议 2.1. TCP报文格式 2.2. TCP的确认应答机制 2.3. 流量控制 2.4. 标志位 2.4.1. ACK、SYN 2.4.2. RST(reset) 2.4.3. PSH(push) 2.4.4. URG 2.4.5. FIN 2.5. TCP三次握手 2.…

买阿里云服务器,实操搭建nginx+php+mysql+thinkphp5全过程(2)

书接上回(买阿里云服务器,实操搭建nginx+php+thinkphp5全过程(1)),我的阿里云服务器快要到期了,为了让它发光发热,实现最后的价值,我目标初始化服务器,重新实操搭建nginx+php+thinkphp5全过程。 反正也快过期了,知道IP也没关系了(但是我的淘宝名还是遮一下吧),上…

香港发布有关虚拟资产发展的政策宣言

本宣言由财经事务及库务局(“财库局” )发出&#xff0c;就在香港发展蓬勃的虚拟资产行业和生态圈&#xff0c;阐明政府的政策立场和方针。 愿景和方针 2. 香港是国际金融中心&#xff0c;对全球从事虚拟资产业务的创新人员抱持开放和兼融的态度。我们十分欣赏这些创新人员开展…

学原油期货买什么书(怎么样买原油期货)

想做好期货要看哪些书籍 炒期货要学习的入门知识太多&#xff0c;比如期货法规、期货基础、期货品种、交易规则等等。期货合约的商品品种、交易单位、合约月份、保证金、数量、质量、等级、交货时间、交货地点等条款都是既定的&#xff0c;是标准化的&#xff0c;唯一的变量是…

计算机毕设(附源码)JAVA-SSM计算机组成原理教学系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

python--孪生素数

找出100以内的所有“孪生数” 如果两素数只差为2&#xff0c;这样的两个素数就叫做“孪生数”&#xff0c; 代码如下&#xff1a; def is_prime(num): """判断一个数是否为质数""" for i in range(2, num // 2 1): if num % …

【PCL】输入输出(I/O)

文章目录学习资料点云文件格式写入点云数据到PCD文件从PCD文件读取点云数据点云拼接学习资料 最重要的参考资料是官网&#xff1a;https://pointclouds.org/&#xff0c;Docs是函数手册&#xff0c;Tutorials是代码示例&#xff0c;两者结合学习&#xff08;shiyong&#xff0…

java毕业设计——基于java+JSP+sqlserver的班主任管理系统设计与实现(毕业论文+程序源码)——班主任管理系统

基于javaJSPsqlserver的班主任管理系统设计与实现&#xff08;毕业论文程序源码&#xff09; 大家好&#xff0c;今天给大家介绍基于javaJSPsqlserver的班主任管理系统设计与实现&#xff0c;文章末尾附有本毕业设计的论文和源码下载地址哦。 文章目录&#xff1a; 基于javaJ…

windows下搭建mindspore的编译环境

rugwindows 10下安装mindpsore环境&#xff0c;需要visual studio 2019及以上&#xff0c;cmake, python 也可以从上面下载mindspore编译依赖的软件。 visual studioan安装时需注意 然后再安装cmake,git&#xff0c;安装好之后设置检查环境变量&#xff0c;缺失的要补上 系统…

形式主语 it 练习题

4.形式主语 it it 可以代替主语从句&#xff0c;不定式&#xff0c;动名词&#xff08;非正式用语下&#xff09; 1.It is a pity how many unhappy marriages there are 2.It is doesn’t interest me to steal the secret formula. 3.It is doesn’t interest me what she c…

【蓝桥杯选拔赛真题25】python输出指定数据 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

目录 python输出指定数据 一、题目要求 1、编程实现 2、输入输出 3、评分标准