On the contrary, the standard vector and string classes are garbage UX-wise (e.g. unlike pretty much every other single dynamic array implementation in existence, vector does not have something like an "index of element" method and instead you are supposed to use std::find and subtract iterators with a special check for when the element wasn't found... like, WTF).
OK, fine. Then use std::string_view, etc., which are cleaner and more efficient usually. There are several reasons why C++ open source is hard to reuse, and not using standard types appropriately is one of them.
I just wrote that the API is garbage and then you recommend me to use the API? :-P The entire STL/StdC++ has the same design style, it is garbage all the way down.
I'd rather use something like Qt (which is far from great, but better than STL/StdC++). Well, personally i'd rather not use C++ in the first place, but if i'm going to use C++ i'd rather use something else (which frankly, would be my own container and string classes that provide a much better API).