(STL之string)string类的用法详解
string类成员函数PART1
成员函数(构造函数+拷贝构造函数):string
- 函数原型:
string();
string (const string& str);
string (const string& str, size_t pos, size_t len = npos);
string (const char* s);
string (const char* s, size_t n);
string (size_t n, char c);
template <class InputIterator>
string (InputIterator first, InputIterator last);
- 函数功能(通俗):创建string类实例化对象时一语双关调用的构造函数
- 函数简介(文档):

成员函数(析构函数):~string
- 函数原型:
~string();
- 函数功能(通俗):完成string类实例化对象即将销毁前的资源清理工作
- 函数简介(文档):

成员函数(赋值运算符重载):operator =
- 函数原型:
string& operator= (const string& str);
string& operator= (const char* s);
string& operator= (char c);
- 函数功能(通俗):对已有的string类实例化对象用其他已有的string类实例化对象进行赋值
- 函数简介(文档):

string类成员函数PART2
成员函数:begin
- 函数原型:
iterator begin();
const_iterator begin() const;
- 函数功能(通俗):返回指向string类实例化对象中的字符串其第一个字符的迭代器
- 函数简介(文档):

成员函数:end
- 函数原型:
iterator end();
const_iterator end() const;
- 函数功能(通俗):返回指向string类实例化对象中的字符串其终止符’\0’的迭代器
- 函数简介(文档):

成员函数:rbegin
- 函数原型:
reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
- 函数功能(通俗):返回指向string类实例化对象中的字符串其最后一个字符(非’\0’)的迭代器
- 函数简介(文档):

成员函数:rend
- 函数原型:
reverse_iterator rend();
const_reverse_iterator rend() const;
- 函数功能(通俗):返回指向string类实例化对象中的字符串其第一个字符再前面一个字节的迭代器
- 函数简介(文档):

string类成员函数PART3
成员函数:size
- 函数原型:
size_t size() const;
- 函数功能(通俗):返回string类实例化对象的size
- 函数简介(文档):

成员函数:capacity
- 函数原型:
size_t capacity() const;
- 函数功能(通俗):返回string类实例化对象的capacity
- 函数简介(文档):

成员函数:resize
- 函数原型:
void resize (size_t n);
void resize (size_t n, char c);
- 函数功能(通俗):增加string类实例化对象的capacity,扩容后并且进行初始化填值(可以自己指定,默认为’\0’),实例化对象的size也会相应增加(因为进行了初始化填值)
- 函数简介(文档):

成员函数:reserve
- 函数原型:
void reserve (size_t n = 0);
- 函数功能(通俗):增加string类实例化对象的capacity,扩容后并不进行初始化填值,即实例化对象的size不变
- 函数简介(文档):

成员函数:clear
- 函数原型:
void clear();
- 函数功能(通俗):清空string类实例化对象中的内容,即size变为0,但capacity不变
- 函数简介(文档):

成员函数:empty
- 函数原型:
bool empty() const;
- 函数功能(通俗):判断string类实例化对象是否为空(size是否为0)
- 函数简介(文档):

string类成员函数PART4
成员函数:operator[ ]
- 函数原型:
char& operator[] (size_t pos);
const char& operator[] (size_t pos) const;
- 函数功能(通俗):把string类实例化对象中的内容当成一个字符数组来看,数组里面的[ ]非常熟悉
- 函数简介(文档):

string类成员函数PART5
成员函数:operator+=
- 函数原型:
string& operator+= (const string& str);
string& operator+= (const char* s);
string& operator+= (char c);
- 函数功能(通俗):对string类实例化对象中的字符串内容进行尾部追加新内容
- 函数简介(文档):

成员函数:append
- 函数原型:
string& append (const string& str);
string& append (const string& str, size_t subpos, size_t sublen);
string& append (const char* s);
string& append (const char* s, size_t n);
string& append (size_t n, char c);
template <class InputIterator>
string& append (InputIterator first, InputIterator last);
- 函数功能(通俗):对string类实例化对象中的字符串内容进行尾部追加新内容
- 函数简介(文档):

成员函数:push_back
- 函数原型:
void push_back (char c);
- 函数功能(通俗):对string类实例化对象中的字符串内容进行尾部追加新字符
- 函数简介(文档):

成员函数:assign
- 函数原型:
string& assign (const string& str);
string& assign (const string& str, size_t subpos, size_t sublen);
string& assign (const char* s);
string& assign (const char* s, size_t n);
string& assign (size_t n, char c);
template <class InputIterator>
string& assign (InputIterator first, InputIterator last);
- 函数功能(通俗):清空string类实例化对象中的字符串内容,并且重新填入新字符串
- 函数简介(文档):

成员函数:insert
- 函数原型:
string& insert (size_t pos, const string& str);
string& insert (size_t pos, const string& str, size_t subpos, size_t sublen);
string& insert (size_t pos, const char* s);
string& insert (size_t pos, const char* s, size_t n);
string& insert (size_t pos, size_t n, char c);
void insert (iterator p, size_t n, char c);
iterator insert (iterator p, char c);
template <class InputIterator>
void insert (iterator p, InputIterator first, InputIterator last);
- 函数功能(通俗):在string类实例化对象中的字符串内容非尾部插入指定新字符串内容(其’\0’不作为实体插入字符)
- 函数简介(文档):

成员函数:erase
- 函数原型:
string& erase (size_t pos = 0, size_t len = npos);
iterator erase (iterator p);
iterator erase (iterator first, iterator last);
- 函数功能(通俗):对string类实例化对象中的字符串中某些字符进行删除
- 函数简介(文档):

特殊原因:成员函数replace 和 swap 这边暂时不做介绍
string类成员函数PART6
成员函数:c_str
- 函数原型:
const char* c_str() const;
- 函数功能(通俗):提取string类实例化对象中的字符串(返回堆区字符串数据的起始指针)
- 函数简介(文档):

成员函数:find
- 函数原型:
size_t find (const string& str, size_t pos = 0) const;
size_t find (const char* s, size_t pos = 0) const;
size_t find (const char* s, size_t pos, size_t n) const;
size_t find (char c, size_t pos = 0) const;
- 函数功能(通俗):从string类实例化对象中的字符串指定位置向后去查找特定字串第一次出现的下标位置并返回(注意:无论怎样,原串与字串匹配都是从前往后依次字符比对匹配的)
- 函数简介(文档):

成员函数:rfind
- 函数原型:
size_t rfind (const string& str, size_t pos = npos) const;
size_t rfind (const char* s, size_t pos = npos) const;
size_t rfind (const char* s, size_t pos, size_t n) const;
size_t rfind (char c, size_t pos = npos) const;
- 函数功能(通俗):从string类实例化对象中的字符串指定位置向前去查找特定字串第一次出现的下标位置并返回(注意:无论怎样,原串与字串匹配都是从前往后依次字符比对匹配的)
- 函数简介(文档):

成员函数:find_first_of
- 函数原型:
size_t find_first_of (const string& str, size_t pos = 0) const;
size_t find_first_of (const char* s, size_t pos = 0) const;
size_t find_first_of (const char* s, size_t pos, size_t n) const;
size_t find_first_of (char c, size_t pos = 0) const;
- 函数功能(通俗):从string类实例化对象中的字符串指定位置向后去查找指定字符串内任意一个字符第一次出现的下标位置并返回
- 函数简介(文档):

成员函数:find_last_of
- 函数原型:
size_t find_last_of (const string& str, size_t pos = npos) const;
size_t find_last_of (const char* s, size_t pos = npos) const;
size_t find_last_of (const char* s, size_t pos, size_t n) const;
size_t find_last_of (char c, size_t pos = npos) const;
- 函数功能(通俗):从string类实例化对象中的字符串指定位置向前去查找指定字符串内任意一个字符第一次出现的下标位置并返回
- 函数简介(文档):

成员函数:substr
- 函数原型:
string substr (size_t pos = 0, size_t len = npos) const;
- 函数功能(通俗):创建一个新的string类实例化对象并用当前string类实例化对象的指定位置加上后面共len个字符进行构造初始化,并返回该新string实例化对象
- 函数简介(文档):

非成员函数
相关文章:
(STL之string)string类的用法详解
string类成员函数PART1 成员函数(构造函数拷贝构造函数):string 函数原型: string(); string (const string& str); string (const string& str, size_t pos, size_t len npos); string (const char* s); string (const char* s, size_t n)…...
基于RT-Thread快速上手SD NAND 虚拟文件系统
SD NAND 也称之为贴片式TF卡,贴片式SD卡,采用标准的SDIO接口,兼容SPI接口。下图所示为CS 新一代CS SD NAND NP1GCR01-AOW 大小为128M,对比128M的SD卡,可以看到贴片SD卡尺寸更小,不要SD卡座,占…...
性能测试实战
目录 一、创建线程组与http(s)请求1、JMeter关键词2、创建线程组3、线程组参数举例说明案例1:模拟5个用户,同时访问百度案例2:模拟5个用户,同时访问百度,并且循环2次案例3:模拟5个线程,持续执行10秒的时间案例4:模拟10秒启动10个线程,循环执行20秒4、创建http请求a、操…...
【PWN · 总结】system返回shell(‘/bin/sh‘、‘sh‘、$(0))
pwn题中要通过system/excute等返回shell,进而cat flag。今天遇到一题,参数$(0)也可返回,有必要记录一下。 目录 前言 一、/bin/sh 1.strings 2.IDA 3.pwntools 4.ROPgadget 5.libc中寻找 二、sh 三、$(0) exp IDA查看机器码 …...
《庄子》笔记
庄子 前述:庄子,战国时宋国人。 1.鲲鹏:胸襟宽广,高远,无界限。 2.寒蝉和灵龟:小年的悲哀。 3.小麻雀的得意:境界不同,又有什么可比性呢。 4.列子随风而行:得大道者&…...
五、VBO、EBO 和 VAO
五、VBO、EBO 和 VAO VBO、EBO 和 VAO: VBO(Vertex Buffer Object)是指顶点缓冲区对象,而 EBO(Element Buffer Object)是指图元索引缓冲区对象,VAO 是顶点数据的缓冲区对象,VAO 和…...
数据库期末复习(7.2)查询优化
查询优化的概述 商用数据库花了很多的资金投入到查询优化。 查询优化的分类 逻辑查询优化 物理查询优化 比逻辑查询计划多了怎么去执行的方式,为的是数据操作速度更快 逻辑查询优化的三种关键技术 在科学研究的道路上我们往往不是一帆风顺的,人的认识也是局限的,但是我…...
深入探索:在std::thread中创建并管理QEventLoop的全面指南
深入探索:在std::thread中创建并管理QEventLoop的全面指南 1. 前言:理解QEventLoop和std::thread的基本概念1.1 QEventLoop的基本概念和工作原理1.2 std::thread的基本概念和工作原理1.3 QTimer的基本概念和工作原理 2. 在std::thread中创建QEventLoop&a…...
【Netty】Netty中的超时处理与心跳机制(十九)
文章目录 前言一、超时监测二、IdleStateHandler类三、ReadTimeoutHandler类四、WriteTimeoutHandler类五、实现心跳机制5.1. 定义心跳处理器5.2. 定义 ChannelInitializer5.3. 编写服务器5.4. 测试 结语 前言 回顾Netty系列文章: Netty 概述(一&#…...
尚硅谷大数据hadoop教程_mapReduce
p67 课程介绍 p68概述 p69 mapreduce核心思想 p70 wordcount源码 序列化类型 mapReduce三类进程 p71 编程规范 用户编写的程序分成三个部分:Mapper、Reducer和Driver。 P72 wordcount需求案例分析 p 73 -78 案例环境准备 (1)创建maven…...
一键启停脚本
在/root 目录下创建bin文件夹再创建你的文件 文件里面写如下命令 #!/bin/bash if [ $# -lt 1 ] then echo "No Args Input..." exit ; fi case $1 in "start") echo " 启动集群 " echo " --------------- 启动 -------…...
20230604_Hadoop命令操作练习
20230604_Hadoop命令操作示例 再HDFS中创建文件夹:/itcast/it heima,如存在请删除(跳过回收站)。 hdfs dfs -mkdir -p /itcast/itheima上传/etc/hosts文件到hdfs的/itcast/itheima内。 hadoop fs -put /etc/hosts /itcast/itheima…...
hashCode 与 equals(重要)?
hashCode () 作用是获取哈希码,也称为散列码,实际上是返回一个int 整数,哈希码作用是确定该对象在哈希表中的索引位置;hashCode() 定义在JDK的Object.java中,意味着Java中的任何类都包含有hashCode() 函数。 散列表存…...
华为OD机试(2023.5新题) 需要打开多少监控器(java,py,c++,js)
华为OD机试真题目录:真题目录 本文章提供java、python、c++、jsNode四种代码 题目描述 某长方形停车场,每个车位上方都有对应监控器,当且仅当在当前车位或者前后左右四个方向任意一个车位范围停车时,监控器才需要打开 给出某一时刻停车场的停车分布,请统计最少需要打开…...
209.长度最小的子数组
2023.6.1 这道题的关键是滑动窗口法,滑动窗口法应设定好窗口左侧的右移条件与窗口右侧的移动条件 本例中先初始化好用到的各种值 循环的终止条件是滑动窗口右侧超出列表的范围 走来 cur_sum nums[right] 是将cur_sum的值更新为当前滑动窗口[left,right]的值之和 接…...
react antd Modal里Form设置值不起作用
问题描述: react antd Modal里Form设置值不起作用,即使用form的api。比如:编辑时带出原有的值。 造成的原因:一般设置值都是在声明周期里设置,比如:componentDidMounted里设置,hook则在useEff…...
idea连接Linux服务器
一、 介绍 配置idea的ssh会话和sftp可以实现对linux远程服务器的访问和文件上传下载,是替代Xshell的理想方式。这样我们就能在idea里面编写文件并轻松的将文件上传到linux服务器中。而且还能远程编辑linux服务器上的文件。掌握并熟练使用,能够大大提高我…...
在windows环境下使用winsw将jar包注册为服务(实现开机自启和配置日志输出模式)
前言 Windows系统使用java -jar m命令行运行Java项目会弹出黑窗。首先容易误点导致程序关闭,其次我们希望能在Windows系统做到开机自动启动。因此对于SpringBoot程序,目前主流的方法是采用winsw,简单容易配置 1.下载winsw工具 https://git…...
汽车通用款一键启动舒适进入拓展蓝牙4G网络手机控车系统
1.PKE无钥匙舒适进入功能,靠近车门自动开锁,离开车门自动上锁 2.一键启动/熄火 3.远程遥控启动/熄火 4.遥控设防盗/解除防盗 5.遥控开后尾箱锁负信号输出(需要原车自带尾箱马达和继电器) 6.静音防盗/解除防盗 7.启动车后踩脚刹自动上锁 8.熄火车辆后自动开锁…...
QSettings Class
QSettings类 QSettings类公共类型(枚举)公有成员函数静态成员函数函数作用这个类写文件的特征 QSettings类 QSettings类提供持久的独立于平台的应用程序设置。 头文件:#include< QSettings >qmake:QT core继承(父):QObje…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
