STL常用容器 (C++核心基础教程之STL容器详解)String的API
在C++的标准模板库(STL)中,有多种容器可供使用。以下是一些常见的容器类型:
序列容器(Sequential Containers):
std::vector:动态数组,支持快速随机访问。
std::list:双向链表,支持高效的插入和删除操作。
std::deque:双端队列,支持在头部和尾部进行高效插入和删除操作。
关联容器(Associative Containers):
std::set:有序集合,按照键值自动排序,不允许重复元素。
std::map:有序映射表,包含键-值对,按照键自动排序,不允许重复键。
std::multiset:有序集合,按照键值自动排序,允许重复元素。
std::multimap:有序映射表,包含键-值对,按照键自动排序,允许重复键。
无序关联容器(Unordered Associative Containers):
std::unordered_set:无序集合,使用哈希表实现,不保证元素顺序,不允许重复元素。
std::unordered_map:无序映射表,使用哈希表实现,不保证元素顺序,不允许重复键。
std::unordered_multiset:无序集合,使用哈希表实现,不保证元素顺序,允许重复元素。
std::unordered_multimap:无序映射表,使用哈希表实现,不保证元素顺序,允许重复键。
容器适配器(Container Adapters):
std::stack:栈(后进先出)。
std::queue:队列(先进先出)。
std::priority_queue:优先队列,按照优先级进行排序。
除了上述容器类型外,C++ STL 还提供了其他一些辅助容器和算法,如 std::bitset(位集合)、std::valarray(数值数组)以及各种算法库(如算法、迭代器和函数对象等),它们可以与容器结合使用以实现更复杂的操作。

仿函数:比如说,排序默认从小到大排,我们想要实现从大到小排
适配器:比如说,本来函数只能传一个参数,但我们需要传多个参数
空间配置器:最重要但最不需要关心,因为会自动帮我们完成,自动申请内存,自动释放内存

不同的容器的内存结构是不一样的,数据类型是不一样的,算法通过数据结构操作容器,为每个容器产生一个迭代器,迭代器与容器一 一对应。

string类

string是类,类就有数据和方法

无参构造
拷贝构造
字符串构造
n个元素构造
assign都是统一的复制

字符串构造:



append:追加 5个重载

通俗的理解string的API:
简单理解 std::string 的 API 就是一组用于操作字符串的工具函数或方法。
size():获取字符串的长度,即字符的个数。
empty():检查字符串是否为空,如果为空返回 true,否则返回 false。
substr(pos, len):截取从位置 pos 开始、长度为 len 的子字符串。
append(str):在原字符串末尾添加另一个字符串 str。
erase(pos, len):删除从位置 pos 开始、长度为 len 的子字符串。
replace(pos, len, str):将从位置 pos 开始、长度为 len 的子字符串替换为字符串 str。
find(str, pos):从位置 pos 开始在字符串中查找字符串 str,并返回第一次出现的位置。
rfind(str, pos):从位置 pos 开始在字符串中从后往前查找字符串 str,并返回最后一次出现的位置。
这些方法使得我们可以方便地获取字符串的信息,进行字符串拼接、截取、替换等操作,以及进行字符串的查找和匹配。
通过使用这些 API,我们可以对字符串进行各种常见的处理和操作。
rfind: 从后往前找


用成员:

重载之后的比较会更方便一点:




相关文章:
STL常用容器 (C++核心基础教程之STL容器详解)String的API
在C的标准模板库(STL)中,有多种容器可供使用。以下是一些常见的容器类型: 序列容器(Sequential Containers): std::vector:动态数组,支持快速随机访问。 std::list&…...
《人生苦短,我学Python》——条件判断->(if-elif-else)多向选择 条件嵌套
今天,我们来学习多向选择!if--elif--else if 后的语句是当 if 判断条件成立时,执行的操作。elif 后的语句是当 if 判断不成立时,再判断一次,如果成立,执行的操作。else 后的语句是当以上所有判断条件都不成…...
MongoDB 数据库性能优化技巧
原文:MongoDB 数据库性能优化技巧 (techdatafuture.com) MongoDB 是一款灵活且可扩展的NoSQL数据库,为了提高其性能,我们可以采取一些优化技巧。本文将介绍一些MongoDB性能优化的关键点,包括索引的使用、查询优化、数据模型设计和…...
网络安全人才缺口超百万,如今的就业情况怎样?
网络安全人才缺口超百万,如今的就业情况怎样? 2022年9月7日,国家网络安全宣传周准时开始。本次网络安全宣传周和以前一样,主要目的都是为了普及网络安全知识,提高网络安全的防护技能,提升对电信网络诈骗的…...
「MySQL」MySQL面试题全解析:常见问题与高级技巧详解
MySQL面试题全解析:常见问题与高级技巧详解 1. 什么是数据库?2. 什么是MySQL?3. 什么是SQL?4. 什么是主键?5. 什么是外键?6. 请解释索引是什么以及为什么使用索引?7. 什么是事务?8. …...
【USRP】产品型号、参数、架构全解析系列 6:N320 / N321
一、USRP 简介 通用软件无线电外设( USRP ) 是由 Ettus Research 及其母公司National Instruments设计和销售的一系列软件定义无线电。USRP 产品系列由Matt Ettus领导的团队开发,被研究实验室、大学和业余爱好者广泛使用。 大多数 USRP 通过以太网线连接到主机&am…...
Apifox 常用 JS 脚本
前置脚本常用 1、时间戳生成(秒级): // 1、生成秒级时间戳到全局变量中 //let timestamp parseInt(new Date().getTime() / 1000) //pm.globals.set(timestamp, timestamp) // 2、生成秒级时间戳到全局变量中 pm.globals.set(timestamp, p…...
防止SQL注入的四种方案
一、什么是SQL注入? SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服…...
java单元测试
版本区别 特性Junit 4Junit 5在当前类的所有测试方法之前执行。注解在静态方法上。此方法可以包含一些初始化代码。BeforeClassBeforeAll在当前类中的所有测试方法之后执行。注解在静态方法上。此方法可以包含一些清理代码。AfterClassAfterAll在每个测试方法之前执行。注解在…...
【LeetCode】双指针求解和为s的两个数字
Problem: 剑指 Offer 57. 和为s的两个数字 文章目录 题目解析算法思路分析复杂度Code 题目解析 首先来讲解一下本题的思路 我们看到本题的意思很简单,就是去这个nums这个数组中进行寻找,如果找到了两个数相加之和为target的话,那构成一个结果…...
opencv识别一张图片的多个红框,并截取红框的内容
需求 需要获取图片的红框的内容,实体的图片我就不放了 获取红框 先截取获得图片的多个轮廓 import cv2 import numpy as np # 加载图像并转换为灰度图像 image cv2.imread(image6.jpg) gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 应用高斯模糊以减…...
数据库-事务
介绍: 事务是一组操作的集合,它是一个不可分割的工作单位,事物会把所有的操作作为一个整体一起向系统 提交或撤销操作请求,即这些操作要么同时成功,要么同时失败 操作:事务控制 开启事务:start…...
MySQL 使用开源审计插件
文章目录 前言1. 审计插件下载2. 审计插件参数2.1 server_audit_events2.2 server_audit_excl_users2.3 server_audit_output_type2.4 server_audit_file_path2.5 server_audit_file_rotate_now2.6 server_audit_file_rotate_size2.7 server_audit_file_rotations2.8 server_au…...
Python入门教程 | Python3 集合(Set)
Python3 集合(Set) 集合(set)是一个无序的不重复元素序列。 集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。 可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或…...
视频汇聚/视频云存储/视频监控管理平台EasyCVR安全检查的相关问题及解决方法2.0
开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多…...
【C++模拟实现】反向迭代器的实现
【C模拟实现】反向迭代器的实现 目录 【C模拟实现】反向迭代器的实现反向迭代器的代码示例反向迭代器的模拟实现要点引入iterator模版参数rbegin()和rend()的实现 作者:爱写代码的刚子 时间:2023.9.5 前言:本篇博客主要介绍反向迭代器的实现&…...
Kubernetes技术--k8s核心技术持久化存储
有时候需要在集群中进行一些重要的数据进行持久化存储,然后需要的时候再进行挂载,那么下面我们一起来看看如何实现数据的持久化存储操作。 1.nfs网络存储 -1.找一台服务器做nfs的服务端,安装nfs。(这里我们直接在master上实现)。 这里应该找再单独的搭建一个node节点做持…...
【80天学习完《深入理解计算机系统》】第十四天 复习第三章
专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录) 文章字体风格: 红色文字表示&#…...
库中是如何实现string类的?
🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 …...
无涯教程-JavaScript - WORKDAY.INTL函数
描述 WORKDAY.INTL函数返回带有自定义周末参数的指定工作日数之前或之后的日期的序列号。周末参数指示哪些和多少天是周末。周末和指定为假期的任何日子均不视为工作日。 语法 WORKDAY.INTL (start_date, days, [weekend], [holidays])争论 Argument描述Required/OptionalS…...
除了当图床,Cloudflare R2的S3 API还能这么玩?Python脚本批量管理文件实战
解锁Cloudflare R2的S3 API潜能:Python自动化文件管理实战 Cloudflare R2作为兼容S3 API的对象存储服务,其应用场景远不止搭建图床这么简单。对于开发者而言,R2提供的S3兼容接口意味着可以将其无缝集成到各种自动化工作流中。本文将带你探索如…...
手把手调试:如何用Windbg或Linux下工具查看并修改PCIe设备的BAR寄存器?
实战指南:Windows与Linux下PCIe设备BAR寄存器调试全流程 当一块PCIe网卡突然无法被系统识别,或者GPU设备在资源分配时发生冲突,作为驱动工程师的你该如何快速定位问题?本文将带你深入PCIe设备的底层世界,从BDF寻址到B…...
解锁戴森电池3大突破:固件破解技术让32次红灯故障电池重生
解锁戴森电池3大突破:固件破解技术让32次红灯故障电池重生 【免费下载链接】FU-Dyson-BMS (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum Battery Management System 项目地址: https://gitcode.com/gh_mirrors/fu/FU-Dyson-BMS 当你的戴森吸尘器突…...
2026论文写作工具红黑榜:AI论文工具怎么选?一篇看懂
2026年论文写作工具市场百花齐放,红榜推荐千笔AI、ThouPen、豆包,均适配国内学术规范;黑榜需避开低质免费工具、无真实引用平台及过度依赖全文生成的工具。选择时可按需求匹配度 - 数据可信度 - 成本承受力三维模型进行评估。一、红榜&#x…...
网页时光机:如何用浏览器扩展拯救消失的互联网记忆
网页时光机:如何用浏览器扩展拯救消失的互联网记忆 【免费下载链接】wayback-machine-webextension A web browser extension for Chrome, Firefox, Edge, and Safari 14. 项目地址: https://gitcode.com/gh_mirrors/wa/wayback-machine-webextension 当你精…...
物联网项目实战:ESP32S3 解析 AS608 指纹特征数据包(二)
1. 数据包结构深度解析 第一次拿到AS608指纹模块的原始数据包时,我盯着那一串十六进制数看了足足半小时。就像拆解一个俄罗斯套娃,需要层层剥离才能找到核心的指纹特征数据。实测发现,完整的数据包包含三个关键部分: 包头标识&…...
如何一键备份你的QQ空间历史说说:GetQzonehistory完整指南
如何一键备份你的QQ空间历史说说:GetQzonehistory完整指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心QQ空间里的珍贵回忆会随着时间消失?那些承…...
终极Web-Check备份恢复指南:数据安全保障策略详解
终极Web-Check备份恢复指南:数据安全保障策略详解 【免费下载链接】web-check 🕵️♂️ 用于分析任何网站的一体化 OSINT 工具 项目地址: https://gitcode.com/GitHub_Trending/we/web-check Web-Check是一款功能强大的开源OSINT工具࿰…...
Web开发全栈实践:搭建展示MiniCPM-V-2_6能力的交互式网站
Web开发全栈实践:搭建展示MiniCPM-V-2_6能力的交互式网站 最近在探索多模态大模型的应用,发现MiniCPM-V-2_6在视觉理解方面表现挺有意思。光看技术文档和跑跑Demo总觉得不过瘾,不如自己动手,用最熟悉的Web技术栈,给它…...
LFM2.5-1.2B-Thinking-GGUF实战教程:用三句话讲清GGUF——模型本身即教程
LFM2.5-1.2B-Thinking-GGUF实战教程:用三句话讲清GGUF——模型本身即教程 1. 认识LFM2.5-1.2B-Thinking-GGUF LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的一款轻量级文本生成模型,专为低资源环境优化设计。这个模型最大的特点是内置了GGUF格式的模型文…...
