就地标记 std::string

In place tokenizing of a std::string

本文关键字:string std      更新时间:2023-10-16

可能的重复项:
如何在C++中标记字符串?

有几种可能性可以标记 std::string,就像 strtok 使用 C 样式字符串一样。我发现了 boost::tokenizer、getline 或通过字符串的手动迭代。但是这些可能性中的每一个都与strtok不同,因为它们都不到位。他们将字符复制到新字符串(如果我给定的可能性之一实际上工作不同,请纠正我),而 strtok 不需要分配(至少从我的角度来看 - 内部它可能分配内存)任何内存。

现在我只是好奇是否有任何方法可以实现 std::string 的这种行为?我想过通过数据访问,但它返回了一个常量指针。

有什么想法吗?

您只需将

tokes 生成为std::string迭代器对即可就地标记std::string