(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…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...
拟合问题处理
在机器学习中,核心任务通常围绕模型训练和性能提升展开,但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正: 一、机器学习的核心任务框架 机…...
JVM——对象模型:JVM对象的内部机制和存在方式是怎样的?
引入 在Java的编程宇宙中,“Everything is object”是最核心的哲学纲领。当我们写下new Book()这样简单的代码时,JVM正在幕后构建一个复杂而精妙的“数据实体”——对象。这个看似普通的对象,实则是JVM内存管理、类型系统和多态机制的基石。…...
