I was reading about the rope data structure.I am interested in building a text editor using C++ and Qt. My question is: Does built-in string manipulating functions in programming languages like C++ use the rope data structure? Or do I need to write my own code for implementing ropes so that I can perform string operations like concatenation and deletion more efficiently?
Asked
Active
Viewed 3,540 times
1 Answers
7
std::string
is not a rope, but SGI STL provides rope
.
If you plan on implementing your own rope, I'd recommend SGI's rope implementation overview for some implementation details.

Gnat
- 2,861
- 1
- 21
- 30

Peter Alexander
- 53,344
- 14
- 119
- 168
-
So if I code my own functions for implementing ropes, will it be faster than the traditional built-in string functions? Are there any drawbacks if ropes are used? – sudeepdino008 Sep 22 '12 at 15:35
-
@I'llsudeepdino008: For the most part, `std::string` works the same as `std::vector`: amortized constant `push_back` and `pop_back`, and constant indexing, but linear for insertion/removal. Short answer: yes, implementing rope will be faster than using `std::string`. – Peter Alexander Sep 22 '12 at 15:37
-
1It appears that the SGI documentation has been retired. This link can still be accessed through web archives at https://web.archive.org/web/20170629152140/http://www.sgi.com/tech/stl/Rope.html – Human-Compiler Jan 28 '18 at 20:30