c++ - 如何以更少的开销管理字符串切片?

标签 c++ substring cstring slice stdstring

我在 C++ 程序中处理巨大的(最多 2GB)字符串及其切片。 C 风格的字符串在这种情况下似乎不可靠,但可以简单地切片(末尾没有 '\0')。另一方面,据我所知,std::string::substr 复制切片,因此我应该为每个索引执行至少一个额外的加法操作(索引 + 基数),以保持合理的内存使用。

最佳答案

最通用的解决方案是创建一个切片对象,使用 您需要的界面,然后使用它。切片对象可以包含两个 迭代器,开始和结束。

关于c++ - 如何以更少的开销管理字符串切片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10513590/

相关文章:

mysql - 是否有一种优雅且高效的 SQL 方式来列出所有子字符串位置?

MySQL:如何将一个值分成 3 个可能的部分(除以空格)

c++ - 为什么我的 char* 在 C++ 中是可写的,有时是只读的

c - 为什么我没有收到段错误?

c++ - 为什么 MFC C++ CString(const char*) 完全改变 const char* 值?

c++ - C++ 中的字符串、整数和 float 验证

c++ - 基于某些模板参数从多个基类访问 corect 方法,而不用隐藏它们

C++ 链接器错误

php - 用于匹配任意长度的所有重复子串的正则表达式

c++ - 如何调试使用 boost 而不会失去理智的代码?