news 2026/5/27 20:11:12

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/5/23 18:01:26

轻量级容器环境Colima

Colima是一个在macOS(和Linux)上运行容器的最小化设置工具,它通过在虚拟机中运行容器,为开发者提供了一个轻量级的本地容器环境。 诞生背景:为什么需要Colima? Colima源于Lima项目,该项目由一群…

作者头像 李华
网站建设 2026/5/23 18:02:11

征程 6 | power management sample

1. 功能概述 本文通过示例演示如何通过相关接口对启动标志进行读写,以及对 main 域电源进行控制与查询。相关 API 定义,请查询 电源管理用户手册 API 部分 。 2. main 域上下电及状态查询示例代码 请参考版本中 Service/Cmd_Utility/power_sample_cmd…

作者头像 李华
网站建设 2026/5/23 18:02:11

网安公司,亏麻了!

又到一年一度的“网安比惨季”。每年这个时候,上市公司一发业绩预告,朋友圈就像开了弹幕:“亏得真稳定”、“一年更比一年凉”、“这行业还有救吗?”我把2025年的成绩单摊开一看,好家伙——这哪是财报,分明…

作者头像 李华
网站建设 2026/5/23 18:01:42

晋升名单其实早就在答辩前定好了?答辩只是走个过场

刚看到个贴子,楼主说自己为了晋升,熬夜做了20页PPT,把一年成绩吹到天上去。结果评委只问了一句:你在项目里的不可替代性是什么?更扎心的是,后来才知道晋升名单早就定好了,答辩纯属走流程。我的看…

作者头像 李华
网站建设 2026/5/20 21:56:15

iPhone17大热,网传有国产手机品牌的旗舰手机最高跌超三成

由于苹果的iPhone17卖得实在太好,一些国产手机品牌总是喜欢对标iPhone17,眼见着在整体销量方面落后太多,于是他们不断缩短时间周期,例如从季度缩短到月份,甚至会时不时拿周销量来证明自己并未必iPhone17差太多&#xf…

作者头像 李华
网站建设 2026/5/18 21:26:01

CANN hixl 在单机多卡场景下的 PCIe 带宽优化策略

相关链接: CANN 组织主页:https://atomgit.com/cannhixl 仓库地址:https://atomgit.com/cann/hixl 前言 在单机多设备(Multi-Device)AI 训练与推理系统中,设备间的数据交换常通过 PCIe 总线完成。然而&am…

作者头像 李华