我想知道在什么情况下你会在另一个STL容器上使用绳子?
发布于 2010-05-13 19:46:44
Rope是一种可伸缩的字符串实现:它们是为将字符串作为一个整体进行有效操作而设计的。赋值、连接和子字符串等操作所需的时间几乎与字符串的长度无关。与C字符串不同的是,对于非常长的字符串,例如编辑缓冲区或邮件消息,ropes是一种合理的表示方式。
Advantage:
https://wayback.archive.org/web/20130102093702/https://www.sgi.com/tech/stl/Rope.html
发布于 2010-05-13 19:46:12
它是处理大数据量的string的非标准替代方案。有关其工作原理,请参阅here。
发布于 2011-03-24 09:30:05
ropes唯一不好的地方就是线程和滥用。
在Linux (可能还有大多数其他OSes)下,据说线程安全代码是导致ropes变得如此慢的原因。因此,我只是删除了这些代码(为线程关闭设置了一个编译器定义),因为我在嵌入式平台中使用了单个线程。
否则,ropes比字符串快得多,在大缓冲区中不太可能出现内存不足的情况,而且编辑大缓冲区的速度也快得多;比如删除圣经中间的坏字符。
这是由于绳索被解释为数据的方式所致。作为许多较小的“字符串”通过链表链接在一起,以产生最终的字符串。
https://stackoverflow.com/questions/2826431
复制相似问题