(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…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
