Ich persönlich hasse die Namenskonvention bei der STL. Besonders nervig wenn meine Klasse auch ein Konzept aus der STL ist. Trotzdem habe ich mich damit abgefunden, man kann halt nicht alles selbst machen.
@Legend
Der Austausch zwischen einem assoziativen Container und einem sequentiellen Container ist nun mal schwierig, weil der Typ in C++ schon vorher "
std::pair" gewesen sein müsste. In C# ist es mit "
KeyValuePair" aber im Wesentlichen kaum anders.
Um mit einem beliebigen Container in C++ arbeiten zu können, muss man entweder wieder ein Type Alias auf den Iterator machen, oder, wenn es sich um eine allgemeine Implementierung handelt, die mit jedem Iterator klar kommen soll, ein Template, wie es auch in der STL zum Beispiel bei "
algorithm" gehandhabt wird.
Assoziative Container habe ich eigentlich eher selten. Ich verwende habe ich manchmal sogar altmodische Raw-Pointer als Iteratoren verwendet. Dann kann man als Bonus noch beliebige Arrays übergeben.
Also laut diesem Link hier (http://www.cprogramming.com/tutorial/string.html) sind std::string Objekte mutable.
Ja, die "std::string" schon. Ich denke aber, Schorsch meint aber nicht die Implementierung der STL. Wenn man die String-Klasse selbst entwickeln würde, kann man darüber eigentlich selbst entscheiden. Meiner Meinung kann es schon Sinn machen, einen String immutable zu machen. Gleiche Strings oder Sub-Strings könnten sich dann Speicherbereiche teilen.