STL常用容器 (C++核心基础教程之STL容器详解)String的API

本文介绍了C++标准模板库(STL)中的各种容器,包括序列容器(如vector,list,deque)、关联容器(如set,map,multiset,multimap)和无序关联容器(如unordered_set,unordered_map等),以及容器适配器(如stack,queue,priority_queue)。还提及了string类的API及其操作,如长度、空性检查、子串处理等。
摘要由CSDN通过智能技术生成

在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: 从后往前找
在这里插入图片描述

在这里插入图片描述
用成员:
在这里插入图片描述

重载之后的比较会更方便一点:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值