C ++字符串中的字符串游标/标记

时间:2014-02-04 07:35:36

标签: c++ c++11

我正在使用一些大的(兆字节)字符串,我需要通过在不同位置插入和删除字符来修改它们。

为了提高效率,而不是每次都搜索插入/删除点,我希望有“游标”或“标签”,如果插入文本(即它们相应移动)仍然有效,并且仍然是如果删除的文本没有“封闭”光标位置(例如,如果光标在删除的子字符串中变为无效,则相应移动其他光标),则有效。

我不需要同时对字符串进行操作,但插入/删除操作总是一次发生。

您知道如何使用标准C ++,boost或便携式轻量级库来完成这项工作吗?

2 个答案:

答案 0 :(得分:4)

如果插入点的数量相对较小,为什么不保留插入点的列表(或数组),按其偏移量排序并将其包含在数据字符串中。

然后,只要您插入/删除某些文本,只需通过该列表并调整超出修改偏移量的任何插入点,向上或向下调整插入/移除的大小。

当然,您必须决定修改“点击”其中一个插入点的意义(例如,如果删除的范围包含一个或多个插入点,该怎么办),但这取决于你想要为这些标记维护什么。

答案 1 :(得分:1)

也许您可以在文字中使用特殊关键字,使用正则表达式匹配和替换(正则表达式):http://www.cplusplus.com/reference/regex/

请注意您使用的关键字,因为它们可能会自然地出现在字符串中。

相关问题