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
vector :: at vs. vector :: operator []
Ich weiß, dass dies at()langsamer ist als []aufgrund seiner Grenzprüfung, die auch in ähnlichen Fragen wie C ++ Vector bei / [] Operatorgeschwindigkeit oder :: std :: vector :: at () vs Operator [] << überraschende Ergebnisse diskutiert wird !! 5 bis 10 mal langsamer / schneller! . Ich verstehe …
94 c++  stl  stdvector 


2
std :: back_inserter für ein std :: set?
Ich denke, das ist eine einfache Frage. Ich muss so etwas tun: std::set<int> s1, s2; s1 = getAnExcitingSet(); std::transform(s1.begin(), s1.end(), std::back_inserter(s2), ExcitingUnaryFunctor()); Funktioniert natürlich std::back_inserternicht, da es keine gibt push_back. std::inserterbraucht auch einen Iterator? Ich habe es nicht benutzt std::inserterund bin mir nicht sicher, was ich tun soll. Hat jemand …
93 c++  algorithm  stl 



7
Überprüfen des Inhalts von Standardcontainern (std :: map) mit gdb
Angenommen, wir haben so etwas: #include <map> int main(){ std::map<int,int> m; m[1] = 2; m[2] = 4; return 0; } Ich möchte in der Lage sein, den Inhalt der Karte zu überprüfen, auf der das Programm von gdb ausgeführt wird. Wenn ich versuche, den Indexoperator zu verwenden, erhalte ich: (gdb) …
92 c++  stl  map  gdb 


2
Warum verwendet std :: stack standardmäßig std :: deque?
Da die einzigen Operationen, die erforderlich sind, damit ein Container in einem Stapel verwendet werden kann, folgende sind: zurück() push_back () Pop zurück() Warum ist der Standardcontainer dafür eine Deque anstelle eines Vektors? Geben Deque-Neuzuweisungen nicht einen Puffer mit Elementen vor front () an, sodass push_front () eine effiziente Operation …
90 c++  stl  containers 

2
So hängen Sie ein Listenobjekt <T> an ein anderes an
In C ++ habe ich zwei list&lt;T&gt;Objekte Aund Bmöchte alle Mitglieder von Bam Ende von hinzufügen A. Ich habe ein paar verschiedene Quellen durchsucht und keine einfache Lösung (ei A.append(B);) gefunden, was mich ein wenig überrascht. Was ist der beste Weg, dies zu tun? Zufällig interessiert mich B danach nicht …
90 c++  list  stl 

8
Alternative zum Vektor <bool>
Wie (hoffentlich) wir alle wissen, vector&lt;bool&gt;ist es total kaputt und kann nicht als C-Array behandelt werden. Was ist der beste Weg, um diese Funktionalität zu erhalten? Bisher habe ich an folgende Ideen gedacht: Verwenden Sie vector&lt;char&gt;stattdessen ein oder Verwenden Sie eine Wrapper-Klasse und haben vector&lt;bool_wrapper&gt; Wie geht ihr mit diesem …
90 c++  stl  vector  boolean 


9
std :: map insert oder std :: map find?
Angenommen, Sie möchten eine Karte erstellen, in der vorhandene Einträge beibehalten werden sollen. In 20% der Fälle handelt es sich bei dem Eintrag, den Sie einfügen, um neue Daten. Gibt es einen Vorteil, wenn Sie std :: map :: find und dann std :: map :: insert mit diesem zurückgegebenen …
89 c++  optimization  stl  stdmap 

8
Welchen STL-Container soll ich für ein FIFO verwenden?
Welcher STL-Container passt am besten zu meinen Anforderungen? Ich habe im Grunde einen 10 Elemente breiten Container, in dem ich ständig push_backneue Elemente pop_fronteinbaue, während ich das älteste Element (ungefähr eine Million Mal) bin . Ich verwende derzeit ein std::dequefür die Aufgabe, habe mich aber gefragt, ob ein std::listeffizienter wäre, …
89 c++  stl  fifo 

6
Anfangskapazität des Vektors in C ++
Was ist das capacity()von einem, std::vectordas mit dem Standardkonstruktor erstellt wird? Ich weiß, dass das size()Null ist. Können wir feststellen, dass ein standardmäßig konstruierter Vektor keine Heap-Speicherzuordnung aufruft? Auf diese Weise wäre es möglich, ein Array mit einer beliebigen Reserve unter Verwendung einer einzelnen Zuordnung zu erstellen, wie z std::vector&lt;int&gt; …

7
Warum können wir keinen std :: vector <AbstractClass> deklarieren?
Nachdem ich einige Zeit in C # verbracht hatte, stellte ich fest, dass Sie, wenn Sie eine abstrakte Klasse deklarieren, um sie als Schnittstelle zu verwenden, keinen Vektor dieser abstrakten Klasse instanziieren können, um Instanzen der untergeordneten Klassen zu speichern. #pragma once #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; class …

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.