【发布时间】:2012-09-22 15:30:09
【问题描述】:
我正在阅读有关绳索数据结构的信息。我对使用 C++ 和 Qt 构建文本编辑器很感兴趣。我的问题是:C++ 等编程语言中的内置字符串操作函数是否使用绳索数据结构?或者我是否需要编写自己的代码来实现绳索,以便更有效地执行连接和删除等字符串操作?
【问题讨论】:
标签: c++ string data-structures ropes
我正在阅读有关绳索数据结构的信息。我对使用 C++ 和 Qt 构建文本编辑器很感兴趣。我的问题是:C++ 等编程语言中的内置字符串操作函数是否使用绳索数据结构?或者我是否需要编写自己的代码来实现绳索,以便更有效地执行连接和删除等字符串操作?
【问题讨论】:
标签: c++ string data-structures ropes
std::string 不是绳子,但 SGI STL 提供了rope。
如果您打算实施自己的绳索,我建议您使用SGI's rope implementation overview 了解一些实施细节。
【讨论】:
std::string 与std::vector 的工作方式相同:摊销常量push_back 和pop_back,以及常量索引,但对于插入/删除是线性的。简短的回答:是的,实施绳索将比使用std::string 更快。