news 2026/7/28 22:09:52

C++的String类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++的String类

Hello,我还是那只王文,到寒假了~做了好几天库,才发现我居然没更新了~
加入组织链接:

https://gitcode.com/invite/link/6a9749da4e7b47f29d39https://gitcode.com/invite/link/6a9749da4e7b47f29d39

最近发现原版的std::string类有很多不足,就那元宝举例啦(企鹅看到了记得广告费给一下(pian人的)

  1. COW(写时复制)的弃用

    C++11 前某些实现用 COW 优化,但 C++11 的线程安全要求使多数实现放弃 COW,转为直接深拷贝或 SSO,可能增加大字符串复制的开销。

  2. SSO(短字符串优化)实现不一

    虽 SSO 提升短字符串性能,但不同编译器的内部缓冲区大小不同(通常 15-22 字节),导致性能可移植性差。

  3. 内存碎片化

    频繁修改字符串(如拼接、重分配)可能导致内存碎片,影响长期运行性能。

  4. 隐藏的内存分配

    str1 = str2 + str3 + str4; // 可能产生临时对象,多次分配

于是我自己造了一个String类,用了(此处作者吸了一口气):SSO(短字符串优化),RAII(资源获取即初始化),自定义分配器,容量对齐,渐进式增长,异常安全,移动语义,noexcept 优化,SFINAE,std::initializer_list 支持,内存操作优化,查找算法,缓冲区管理.....

反正就是很多内容啦~

点赞过200,我就让他支持Unicode字符集
项目地址:String:C++ String Class.C++字符串类。 - AtomGit | GitCode

对了,最近入驻GitHub了,可以搜ProgramForge来找我,
GitHub地址:DWW973/String: C++ String Class.C++字符串类。 --- DWW973/String: C++ String Class.C++字符串类。

就这样啦,bye,bye~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 11:46:13

蜜雪冰城 小程序 sign 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!部分python代码url "/api/v2/sho…

作者头像 李华
网站建设 2026/7/26 12:28:30

例说FPGA:可直接用于工程项目的第一手经验【3.7】

18.4 软件程序解析 1.main.c源文件软件程序解析 main.c的函数列表如表18-2所示。 表18-2 main.c文件的函数列表 2.int main(void)函数 主函数上电后稍作延时,主要是确保ADV7513芯片进入工作状态,接着给连接逻辑端hdmi_mode信号的PIO赋值,设置HDMI驱动的分辨率。代码中已经…

作者头像 李华
网站建设 2026/7/20 11:14:41

【Dubbo服务找不到?从抓耳挠腮到一键解决,全流程干货!】

作为一名天天和BUG贴贴的程序员,排查问题就像拆盲盒——你永远不知道下一个坑是逻辑bug、环境搞怪,还是同事偷偷改的配置让你当场破防。而最让人崩溃的,当属Dubbo服务找不到的坑!就像你约了朋友吃饭,到地方发现人没影&…

作者头像 李华
网站建设 2026/7/19 13:22:40

【netty】EventLoop

eventloop 可以处理channel上 accept、read、write等io事件1.单线程执行器2.维护了一个selector如果传入线程数,则使用传入的线程数如果没有传入线程数,则获取配置的线程数 与 系统的cpu核数*2 比大小防。 止存在0线程的情况,所以与1比大小&a…

作者头像 李华
网站建设 2026/7/22 0:21:28

GLM-4.7-Flash参数详解:flash-attn2启用条件、量化选项与推理精度权衡

GLM-4.7-Flash参数详解:flash-attn2启用条件、量化选项与推理精度权衡 1. 模型基础认知:不只是“更快的GLM-4” 你可能已经听说过GLM-4系列,但GLM-4.7-Flash不是简单的小版本迭代。它是一次面向实际部署场景的深度重构——目标很明确&#…

作者头像 李华