Als «stl» getaggte Fragen

Die Standard Template Library (STL) ist eine C ++ - Bibliothek mit generischen Containern, Iteratoren, Algorithmen und Funktionsobjekten. Wenn C ++ standardisiert wurde, wurden große Teile der STL in die Standardbibliothek übernommen, und diese Teile in der Standardbibliothek werden manchmal auch fälschlicherweise gemeinsam als "STL" bezeichnet.

8
Kopiert std :: vector die Objekte mit einem push_back?
Nach vielen Untersuchungen mit valgrind bin ich zu dem Schluss gekommen, dass std :: vector eine Kopie eines Objekts erstellt, das Sie push_back möchten. Stimmt das wirklich ? Ein Vektor kann ohne Referenz keine Referenz oder einen Zeiger eines Objekts behalten ?! Vielen Dank
168 c++  stl  stdvector 

11
Wie lösche ich die std :: queue effizient?
Ich verwende std :: queue zum Implementieren der JobQueue-Klasse. (Grundsätzlich verarbeitet diese Klasse jeden Job auf FIFO-Weise). In einem Szenario möchte ich die Warteschlange auf einmal löschen (alle Jobs aus der Warteschlange löschen). In der Klasse std :: queue ist keine eindeutige Methode verfügbar. Wie implementiere ich die Clear-Methode für …
166 c++  stl  queue 


10
Soll ich ganze Objekte oder Zeiger auf Objekte in Containern speichern?
Ein neues System von Grund auf neu entwerfen. Ich werde die STL verwenden, um Listen und Karten bestimmter langlebiger Objekte zu speichern. Frage: Sollte ich sicherstellen, dass meine Objekte Kopierkonstruktoren haben und Kopien von Objekten in meinen STL-Containern speichern, oder ist es im Allgemeinen besser, die Lebensdauer und den Umfang …
162 c++  stl  pointers 

3
Wie bekomme ich einen std :: vector Zeiger auf die Rohdaten?
Ich versuche, std::vectorals charArray zu verwenden. Meine Funktion nimmt einen leeren Zeiger auf: void process_data(const void *data); Bevor ich einfach diesen Code verwendet habe: char something[] = "my data here"; process_data(something); Welches hat wie erwartet funktioniert. Aber jetzt brauche ich die Dynamik von std::vector, also habe ich stattdessen diesen Code …
160 c++  stl  vector 

3
Was sind die Komplexitätsgarantien der Standardcontainer?
Anscheinend ;-) bieten die Standardbehälter irgendeine Form von Garantien. Welche Art von Garantien und was genau sind die Unterschiede zwischen den verschiedenen Containertypen? Auf der SGI-Seite (über STL ) habe ich mir Folgendes ausgedacht: Container Types: ================ Container: Forward Container Reverse Container Random Access Container Sequence Front Insert Sequence Back …
159 c++  stl  containers  big-o 

9
C ++ Valarray vs. Vektor
Ich mag Vektoren sehr. Sie sind geschickt und schnell. Aber ich weiß, dass dieses Ding namens Valarray existiert. Warum sollte ich einen Valarray anstelle eines Vektors verwenden? Ich weiß, Valarrays haben syntaktischen Zucker, aber abgesehen davon, wann sind sie nützlich?


2
Was bedeutet Iterator-> Sekunde?
Was ist in C ++ der Typ eines std::map<>::iterator? Wir wissen, dass ein Objekt itvom Typ std::map<A,B>::iteratoreine Überladung hat, operator ->die a zurückgibt std::pair<A,B>*, und dass das std::pair<>ein firstund ein secondMitglied hat. Aber was entsprechen diese beiden Mitglieder und warum müssen wir auf den in der Karte gespeicherten Wert zugreifen …
157 c++  stl  iterator 

7
Schneller Weg, um einen Vektor in einen anderen zu kopieren
Ich bevorzuge zwei Möglichkeiten: void copyVecFast(const vec<int>& original) { vector<int> newVec; newVec.reserve(original.size()); copy(original.begin(),original.end(),back_inserter(newVec)); } void copyVecFast(vec<int>& original) { vector<int> newVec; newVec.swap(original); } Wie machst du das?
155 c++  algorithm  stl 




11
Wie entferne ich ein Element aus einem stl-Vektor mit einem bestimmten Wert?
Ich habe mir die API-Dokumentation für stl vector angesehen und festgestellt, dass es für die Vektorklasse keine Methode gibt, mit der ein Element mit einem bestimmten Wert entfernt werden kann. Dies scheint eine übliche Operation zu sein, und es scheint seltsam, dass es keine eingebaute Möglichkeit gibt, dies zu tun.
145 c++  stl 


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.