rope数据结构 我在读有关绳子数据结构的文章,我很感兴趣用C++和Qt构建文本编辑器。我的问题是:像C++这样的编程语言中的内置字符串操作函数使用绳子数据结构吗?或者我是否需要编写自己的代码来实现rope,以便更有效地执行串接和删除之类的字符串操作?std::string不是rope,但SGI STL提供

rope数据结构 我在读有关绳子数据结构的文章,我很感兴趣用C++和Qt构建文本编辑器。我的问题是:像C++这样的编程语言中的内置字符串操作函数使用绳子数据结构吗?或者我是否需要编写自己的代码来实现rope,以便更有效地执行串接和删除之类的字符串操作?std::string不是rope,但SGI STL提供,c++,string,data-structures,ropes,C++,String,Data Structures,Ropes,如果您计划实现自己的rope,我建议您提供一些实现细节。因此,如果我编写自己的函数来实现rope,它会比传统的内置字符串函数更快吗?如果使用绳索有什么缺点吗?@I'llsudeepdino008:在大多数情况下,std::string的工作原理与std::vector相同:摊销常数push_-back和pop_-back,以及常数索引,但插入/删除是线性的。简短回答:是的,实现rope将比使用std::string@PeterAlexander更快。感谢您的帮助。:)SGI文档似乎已经失效。此链

如果您计划实现自己的rope,我建议您提供一些实现细节。

因此,如果我编写自己的函数来实现rope,它会比传统的内置字符串函数更快吗?如果使用绳索有什么缺点吗?@I'llsudeepdino008:在大多数情况下,
std::string
的工作原理与
std::vector
相同:摊销常数
push_-back
pop_-back
,以及常数索引,但插入/删除是线性的。简短回答:是的,实现rope将比使用
std::string
@PeterAlexander更快。感谢您的帮助。:)SGI文档似乎已经失效。此链接仍可通过以下网站的web存档访问: