The whole point of C++’ algorithm and container design is that the algorithms are – as far as possible – container agnostic.
So the same algorithm that works on vectors works – of course! – on strings.
std::sort(str.begin(), str.end());
str.erase(std::unique(str.begin(), str.end()), str.end());
The same even works on old-style C strings – with the small difference that you cannot erase
their tails, you need to manually truncate them by re-setting the null terminating character (and there are no begin
and end
member functions so you’d use pointers to the first and one-past-last character).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…