当前位置: 首页 > news >正文

【C++初阶】第8课—标准模板库STL(string_2)

文章目录

  • 1. string类对象遍历操作
    • 1.1 标准库中的成员函数begin( )和end( )
    • 1.2 标准库中的成员函数rbegin( )和rend( )
    • 1.3 C++11引入的4个标准库中的成员函数
  • 2. string类对象的访问
    • 2.1 operator[ ]运算符重载访问字符串字符
    • 2.2 公有成员函数at访问字符
    • 2.3 公有成员函数back()和front()访问字符
  • 3. string类对象的修改操作
    • 3.1 运算符重载operator+=追加字符串/字符
    • 3.2 push_back尾插字符c
    • 3.3 append追加字符串
    • 3.4 尾删字符pop_back
    • 3.5 assign替换string类对象内容(全部替换)
    • 3.6 replace替换string类对象内容(部分替换)
    • 3.7 insert插入字符串
    • 3.8 返回值npos
    • 3.9 erase删除部分字符
    • 3.10 swap交换函数
  • 4 练习
    • 4.1 练习题:反转字母
    • 4.2 练习题:找字符串中第一个只出现一次的字符
    • 4.3 "整数"字符串相加

1. string类对象遍历操作

在这里插入图片描述


1.1 标准库中的成员函数begin( )和end( )

  • begin()和end()听起来就是访问字符串首尾的字符,不过end指向字符串末尾’\0’

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


1.2 标准库中的成员函数rbegin( )和rend( )

  • rbegin()和rend()用来逆序字符串再合适不过了

在这里插入图片描述


在这里插入图片描述


1.3 C++11引入的4个标准库中的成员函数

在这里插入图片描述


2. string类对象的访问

在这里插入图片描述


2.1 operator[ ]运算符重载访问字符串字符

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


2.2 公有成员函数at访问字符

在这里插入图片描述


在这里插入图片描述


  • at和运算符[ ]访问字符的区别是:运算符[ ]下标如果越界,编译器直接断言报错,终止程序运行;at访问字符时,如果下标越界,那么它自动捕获异常,但它不会终止程序运行

在这里插入图片描述


2.3 公有成员函数back()和front()访问字符

在这里插入图片描述


3. string类对象的修改操作

在这里插入图片描述


  • 常见的有
函数名功能说明
push_back在字符串后插入字符c
append在字符串后追加一个字符串
operator+=在字符串后追加字符串str

3.1 运算符重载operator+=追加字符串/字符

在这里插入图片描述


3.2 push_back尾插字符c

在这里插入图片描述


3.3 append追加字符串

在这里插入图片描述


分类功能
string& append (const string& str)追加string类对象
string& append (const string& str, size_t subpos, size_t sublen)追加string类对象,从subpos位置开始,追加sublen个字符
string& append (const char* s)追加常量字符串
string& append (const char* s, size_t n)追加常量字符串,从首字符开始,追加n个
string& append (size_t n, char c)追加n个c字符

在这里插入图片描述


3.4 尾删字符pop_back

在这里插入图片描述


在这里插入图片描述


3.5 assign替换string类对象内容(全部替换)

在这里插入图片描述


在这里插入图片描述


  • assign在替换字符串时,会将原字符串所有内容全部替换为新的值

3.6 replace替换string类对象内容(部分替换)

在这里插入图片描述


  • 对于replace,只需要熟悉上述两个常用的接口,用常量字符串和string类对象替换
  • 与assign对比,assign是将原字符串整个替换掉,而replace相对比较温柔,它会让你选择要替换的字符串位置和要替换字符的个数
  • 当len等于0时,replace就和insert插入的功能类似

3.7 insert插入字符串

在这里插入图片描述


在这里插入图片描述


  • 关于insert的其他接口暂不赘述,可下去查文档实现,对于迭代器的接口,后面使用到会讲述

3.8 返回值npos

在这里插入图片描述


3.9 erase删除部分字符

在这里插入图片描述


在这里插入图片描述


  • 可以看出,erase删除字符后,string类对象的size会发生变化,而capacity则不会改变

3.10 swap交换函数

在这里插入图片描述


4 练习

4.1 练习题:反转字母

在这里插入图片描述


4.2 练习题:找字符串中第一个只出现一次的字符

在这里插入图片描述


4.3 "整数"字符串相加

在这里插入图片描述


  • 思路:首先找到两个"整数"字符串的尾元素下标,然后让尾元素相加,相加之后记录进位的next的值,假如8+7=13,相加之后的字符串尾元素应该为13,那么实际上尾元素应该是13%10=3,进位数next=13/10=1,然后两个尾元素下标减减,如果短的字符串结束,那让长的字符串+0即可,记录新的字符串str,用来加两个字符串相加后的尾元素

相关文章:

【C++初阶】第8课—标准模板库STL(string_2)

文章目录 1. string类对象遍历操作1.1 标准库中的成员函数begin( )和end( )1.2 标准库中的成员函数rbegin( )和rend( )1.3 C11引入的4个标准库中的成员函数 2. string类对象的访问2.1 operator[ ]运算符重载访问字符串字符2.2 公有成员函数at访问字符2.3 公有成员函数back()和f…...

【arm】程序跑飞,SWD端口不可用修复(N32G435CBL7)

项目场景: 国民N32G43X系列,烧录了一个测试程序,在DEBUG中不知什么原因挂掉,然后就无法连接SWD或JLINK。 问题描述 在SWD配置中不可见芯片型号,无法connect,无法烧录。但基本判断是芯片没有损坏。怀疑是程…...

https证书生成、linux 生成https证书、nginx 配置https证书

1. 检查 Certbot 是否已安装 which certbot 2. 安装 Certbot 2.1启用 EPEL 仓库(如果尚未启用): sudo yum install epel-release 2.2 安装 Certbot 和 Nginx 插件: sudo yum install certbot python3-certbot-nginx 2.3验证安…...

Halcon随机贴图生成缺陷图片脚本

halcon随机贴图生成缺陷图片,用于深度学习训练: read_image (Image, C:/Users/61082/Desktop/bentiiamge/omron/S06-1211/ok/ok_images/D246B_CPFNNUBA8LT0SX_AAA_S2412001793_C1216_1733895885320066.jpg) get_image_size (Image, Width, Height) gen_rectangle1 …...

[ZMQ] -- ZMQ通信Protobuf数据结构 1

1、前言背景 工作需要域间实现zmq通信,刚开始需要比较简单的数据结构,比如两个bool,后面可能就需要传输比较大的数据,所以记录下实现流程,至于为啥选择proto数据结构去做大数据传输,可能是地平线也用这个&…...

大数据平台

大数据行业应用持续升温,特别是企业级大数据市场正在进入快速发展时期。越来越多的企业期望实现数据孤岛的打通,整合海量的数据资源,挖掘并沉淀有价值的数据,进而驱动更智能的商业。随着公司数据爆发式增长,原有的数据…...

《C++解锁机器学习特征工程:构建智能数据基石》

在当今机器学习蓬勃发展的浪潮中,特征工程犹如一座坚实的基石,奠定了模型成功的基础。而 C以其卓越的性能和强大的底层控制能力,在实现机器学习特征工程方面发挥着独特且关键的作用。 特征工程的核心目标是从原始数据中提取和构建最具代表性…...

《机器学习》3.7-4.3end if 启发式 uci数据集klda方法——非线性可分的分类器

目录 uci数据集 klda方法——非线性可分的分类器 计算 步骤 1: 选择核函数 步骤 2: 计算核矩阵 步骤 4: 解广义特征值问题 と支持向量机(svm) 目标: 方法: 核技巧的应用: 区别: 使用 OvR MvM 将…...

【Linux】VMware 安装 Ubuntu18.04.2

ISO镜像安装步骤 选择语言 English 选择键盘布局 English 选择系统 Ubuntu 虚拟机网卡地址,默认即可 代理地址,默认空即可 镜像地址,修改成阿里云地址 选择第二项,LVM 磁盘扩容技术 第一块硬盘名sda,默认…...

人员离岗监测摄像机智能人员睡岗、逃岗监测 Python 语言结合 OpenCV

在安全生产领域,人员的在岗状态直接关系到生产流程的顺利进行和工作环境的安全稳定。人员离岗监测摄像机的出现,为智能人员睡岗、逃岗监测提供了高效精准的解决方案,而其中的核心技术如AI识别睡岗脱岗以及相关的算法盒子和常见的安全生产AI算…...

【Spark】Spark数据倾斜解决方案、大表join小表及大表join大表优化思路

如果觉得这篇文章对您有帮助,别忘了点赞、分享或关注哦!您的一点小小支持,不仅能帮助更多人找到有价值的内容,还能鼓励我持续分享更多精彩的技术文章。感谢您的支持,让我们一起在技术的世界中不断进步! Sp…...

探索 Cesium 的未来:3D Tiles Next 标准解析

探索 Cesium 的未来:3D Tiles Next 标准解析 随着地理信息系统(GIS)和 3D 空间数据的快速发展,Cesium 作为领先的开源 3D 地球可视化平台,已成为展示大规模三维数据和进行实时渲染的强大工具。近年来,随着…...

每日一站技術架構解析之-cc手機桌布網

# 網站技術架構解析: ## 一、整體架構概述https://tw.ccwallpaper.com是一個提供手機壁紙、桌布免費下載的網站,其技術架構設計旨在實現高效的圖片資源管理與用戶訪問體驗優化。 ### (一)前端展示 1. **HTML/CSS/JavaScript基礎構…...

prometheus监控之黑盒(blackbox)监控

1.简单介绍 blackbox-exporter项目地址:https://github.com/prometheus/blackbox_exporter blackbox-exporter是Prometheus官方提供的一个黑盒监控解决方案,blackbox-exporter无须安装在被监控的目标环境中,用户只需要将其安装在与Promethe…...

计算机网络之传输层协议TCP

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络之传输层协议TCP 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论💌 目…...

子查询与嵌套查询

title: 子查询与嵌套查询 date: 2024/12/13 updated: 2024/12/13 author: cmdragon excerpt: 子查询和嵌套查询是关系型数据库中强大的查询工具,允许用户在一个查询的结果中再进行查询。通过使用子查询,用户能够简化复杂的SQL语句,增强查询的灵活性和可读性。本节将探讨子…...

GPT-SoVITS语音合成模型部署及使用

1、概述 GPT-SoVITS是一款开源的语音合成模型,结合了深度学习和声学技术,能够实现高质量的语音生成。其独特之处在于支持使用参考音频进行零样本语音合成,即使没有直接的训练数据,模型仍能生成相似风格的语音。用户可以通过微调模…...

springboot423玩具租赁系统boot(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装玩具租赁系统软件来发挥其高效地信息处理的作用&#xff0c…...

【收藏】Cesium 限制相机倾斜角(pitch)滑动范围

1.效果 2.思路 在项目开发的时候,有一个需求是限制相机倾斜角,也就是鼠标中键调整视图俯角时,不能过大,一般 pitch 角度范围在 0 至 -90之间,-90刚好为正俯视。 在网上查阅了很多资料,发现并没有一个合适的…...

Jenkins流水线初体验(六)

DevOps之安装和配置 Jenkins (一) DevOps 之 CI/CD入门操作 (二) Sonar Qube介绍和安装(三) Harbor镜像仓库介绍&安装 (四) Jenkins容器使用宿主机Docker(五) Jenkins流水线初体验(六) 一、Jenkins流水线任务介绍 之前采用Jenkins的自由风格构建的项目,每个步骤…...

你的AirPods在Windows上总是“水土不服“?AirPodsDesktop让苹果耳机完美适配PC

你的AirPods在Windows上总是"水土不服"?AirPodsDesktop让苹果耳机完美适配PC 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/…...

如何快速入门Node.js C++插件开发:node-addon-examples实战教程

如何快速入门Node.js C插件开发:node-addon-examples实战教程 【免费下载链接】node-addon-examples Node.js C addon examples from http://nodejs.org/docs/latest/api/addons.html 项目地址: https://gitcode.com/gh_mirrors/no/node-addon-examples node…...

Python内存管理机制详解:面试必问

目录 一、为什么面试官总爱问内存管理? 二、Python内存管理核心架构 三、PyObject:所有Python对象的祖先 四、引用计数:最基础的内存管理方式 1. 引用计数的工作原理 2. 循环引用 —— 引用计数的死穴 五、垃圾回收(GC&…...

PyWxDump:让微信数据管理更简单的本地解决方案

PyWxDump:让微信数据管理更简单的本地解决方案 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 你是否曾因电脑故障丢失数年积累的重要聊天记录?是否尝试过将关键对话整理成可检索格式却发现无从下手…...

Nature Reviews Genetics 基因调控网络:从相关模型到因果解释

基因调控网络:从相关模型到因果解释 Gene regulatory networks: from correlative models to causal explanations 摘要 基因调控网络解释了基因组如何控制细胞行为和组织形态建成,它将分子机制与功能输出连接起来。如今,单细胞技术以前所未有…...

不止于测距:用蓝桥杯开发板DIY一个简易超声波倒车雷达(含蜂鸣器报警)

从测距到实战:蓝桥杯开发板打造智能超声波雷达系统 第一次倒车时听到蜂鸣器急促的"滴滴"声,我意识到这个简单的超声波模块能做的远不止显示数字。作为参加过蓝桥杯的电子爱好者,我们手头的开发板其实蕴藏着解决实际问题的潜力——…...

tao-8k嵌入模型实战效果:基于Xinference的文本聚类与去重案例

tao-8k嵌入模型实战效果:基于Xinference的文本聚类与去重案例 1. 引言:从海量文本中快速找到“同类项” 想象一下,你手头有成千上万条用户评论、新闻摘要或产品描述。你想知道哪些内容是相似的,哪些是重复的,或者想把…...

Music Tag Web:音乐元数据修复与管理的全栈解决方案

Music Tag Web:音乐元数据修复与管理的全栈解决方案 【免费下载链接】music-tag-web 音乐标签编辑器,可编辑本地音乐文件的元数据(Editable local music file metadata.) 项目地址: https://gitcode.com/gh_mirrors/mu/music-ta…...

揭秘Browsershot:让HTML转PDF/图片变得如此简单高效的终极工具

揭秘Browsershot:让HTML转PDF/图片变得如此简单高效的终极工具 【免费下载链接】browsershot Convert HTML to an image, PDF or string 项目地址: https://gitcode.com/gh_mirrors/br/browsershot Browsershot是一款强大的开源工具,能够轻松将HT…...

终极Android UI开发指南:XUI框架与Material Design完美融合实战

终极Android UI开发指南:XUI框架与Material Design完美融合实战 【免费下载链接】XUI 💍A simple and elegant Android native UI framework, free your hands! (一个简洁而优雅的Android原生UI框架,解放你的双手!) 项目地址: h…...