C++: string(二)

✨✨ 欢迎大家来到我的文章✨

🎈🎈养成好习惯,先赞后看哦~🎈🎈

分类专栏:c++

我的主页:tyler 's blog

文章目录

string与容器很像虽然没归类到容器内,我们完全可以把它归到容器内讲解

一 string的成员函数

1 insert

随着字符增加,头插效率越来越低

其他还有迭代器版本和其他的版本就不演示了

2 resize

有一个重载,第一个是把默认成员移到第n个位置,第二个函数是把默认成员移到第n个位置(size所在地)

n>capacity就扩容,

n<capacity插入
我们知道string的底层类似于栈的结构,也是有capacity ,size之类的默认成员变量的。

3assign

这个用的比较少,是从某字符起到分配作用

4erase

我们用的是第一个重载接口比较多erase(0,x),这就是头删

5replace

我们甚至会看到5个参数的replace

数字都是从pos开始之后len个字符

6 find

(1) find

find接口是返回的size_t来寻找指定字符或者字符串

find可以和replace配合使用,来循环改变指定字符,如下面把l替换为空格。

上面npos是静态成员变量可以根据类名直接::访问,因为没找到失败是返回npos,所以我们这里循环条件是!=npos

这里时间效率会很低,因为涉及到数据挪动

我们可以再定义string s2,以空间换时间

这里时间 复杂度为O(n)比上面replace好多了,原理是以空间换时间。

(2)rfind

这是从后往前找你指定的字符,和find是反着来的,不演示了。

(3)find_first_not_of

这是寻找不是str内字符串内字符位置

我们可以这样删除指定字符

(4)find_first_of

和刚刚find_first_not_of相反不做赘述

7substr

这个很重要是从截取指定位置到指定位置字符串

二总结

1 我们这章学习了string的成员函数,在https://legacy.cplusplus.com/

网站中可以把接口分为按不同标准分成好多类(如下面Capacity,Element access),下面是我们在string常用的

其他不常用的我们要么有替代接口或者功能不常用

2 c++是极度关注效率的语言,要是涉及到修改,删除,替换(尾插不算),这样时间复杂 度就会不好。

相关推荐
Escalating_xu几秒前
【C语言常见概念】从第一行代码到字符串结束标志:一次打通编译、main、ASCII、转义字符与注释
c语言·c++
陌シ未央ゞ4 分钟前
基于BM25算法和RRF实现的混合索引(java版)
人工智能·spring boot·后端·算法
forestsea7 分钟前
从零构建 Java 智能体 RAG 系统:Milvus 向量数据库实战指南
java·数据库·milvus
renhongxia18 分钟前
数字孪生不止在工厂:能源、医疗与农业
人工智能·深度学习·算法·机器学习·数字孪生
Navigator_Z10 分钟前
LeetCode //C - 1250. Check If It Is a Good Array
c语言·算法·leetcode
bnmoel11 分钟前
C++ 基础入门篇(三):内联函数与空指针
c++·内联函数·nullptr·低层
码匠许师傅13 分钟前
【C++三方组件】TinyXML2:两个文件的极简 XML 解析器
xml·c++
free-elcmacom17 分钟前
C++学习<1>程序分区
开发语言·c++
probex_35 分钟前
从 ByConity 到 VictoriaMetrics:一次指标数据迁移引发的四种存储对比
数据库
Patrick在香港1 小时前
Python 审计香港开放数据目录:两个端点差 10 倍,只有 9.3% 的资源标了「最后修改时间」
开发语言·数据库·python·数据分析·api·数据治理·开放数据