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.


6
Warum ist es in Ordnung, einen 'Vektor' von einer Funktion zurückzugeben?
Bitte beachten Sie diesen Code. Ich habe diese Art von Code mehrmals gesehen. wordsist ein lokaler Vektor. Wie ist es möglich, es von einer Funktion zurückzugeben? Können wir garantieren, dass es nicht stirbt? std::vector<std::string> read_file(const std::string& path) { std::ifstream file("E:\\names.txt"); if (!file.is_open()) { std::cerr << "Unable to open file" << …



5
Verwenden des benutzerdefinierten std :: set-Komparators
Overа этот вопрос есть ответы на Stapelüberlauf на русском : Компаратор для set Ich versuche, die Standardreihenfolge der Elemente in einer Reihe von Ganzzahlen so zu ändern, dass sie lexikografisch statt numerisch sind, und ich kann Folgendes nicht mit g ++ kompilieren: file.cpp: bool lex_compare(const int64_t &a, const int64_t &b) …
105 c++  stl 

10
Warum hat std :: set keine Member-Funktion "enthält"?
Ich benutze viel std::set<int>und oft muss ich einfach überprüfen, ob ein solches Set eine Nummer enthält oder nicht. Ich würde es natürlich finden zu schreiben: if (myset.contains(number)) ... Aber wegen des Fehlens eines containsMitglieds muss ich das umständliche schreiben: if (myset.find(number) != myset.end()) .. oder das nicht so offensichtlich: if …
103 c++  stl  stdset 


6
Zeichenfolge c_str () vs. data ()
Ich habe an mehreren Stellen gelesen, dass der Unterschied zwischen c_str()und data()(in STL und anderen Implementierungen) darin besteht, dass c_str()immer null terminiert ist, während dies data()nicht der Fall ist. Soweit ich in tatsächlichen Implementierungen gesehen habe, tun sie entweder dasselbe oder data()rufen auf c_str(). Was fehlt mir hier? Welches ist …
102 c++  stl  c-str 

5
Elemente aus einem Vektor löschen
Ich möchte ein Element mit der Löschmethode aus einem Vektor löschen. Das Problem hierbei ist jedoch, dass das Element nicht garantiert nur einmal im Vektor vorkommt. Es kann mehrmals vorhanden sein und ich muss alle löschen. Mein Code ist ungefähr so: void erase(std::vector<int>& myNumbers_in, int number_in) { std::vector<int>::iterator iter = …
101 c++  vector  stl  erase 

3
Ist die Implementierung von gcc std :: unordered_map langsam? Wenn ja warum?
Wir entwickeln eine hochleistungskritische Software in C ++. Dort benötigen wir eine gleichzeitige Hash-Map und implementieren eine. Also haben wir einen Benchmark geschrieben, um herauszufinden, mit wie viel langsamer unsere gleichzeitige Hash-Map verglichen wird std::unordered_map. Aber es std::unordered_mapscheint unglaublich langsam zu sein ... Das ist also unser Mikro-Benchmark (für die …

4
Zugriff auf C ++ const Map-Elemente
Ich habe versucht, mit dem Operator [] auf das Element in einer const C ++ - Zuordnung zuzugreifen, aber diese Methode ist fehlgeschlagen. Ich habe auch versucht, "at ()" zu verwenden, um dasselbe zu tun. Diesmal hat es funktioniert. Ich konnte jedoch keine Referenz zur Verwendung von "at ()" für …
100 c++  stl  map  const 

2
Warum wird std :: ssize () in C ++ 20 eingeführt?
C ++ 20 führte die std::ssize()freie Funktion wie folgt ein: template <class C> constexpr auto ssize(const C& c) -> std::common_type_t<std::ptrdiff_t, std::make_signed_t<decltype(c.size())>>; Eine mögliche Implementierung scheint zu verwenden static_cast, um den Rückgabewert der size()Mitgliedsfunktion von cl ass C in sein vorzeichenbehaftetes Gegenstück umzuwandeln . Da die size()Mitgliedsfunktion von C immer nicht …
99 c++  stl  unsigned  signed  c++20 


6
Warum ist vector <bool> kein STL-Container?
Punkt 18 von Scott Meyers 'Buch Effective STL: 50 Spezifische Möglichkeiten zur Verbesserung Ihrer Verwendung der Standardvorlagenbibliothek sollten vermieden werden , vector &lt;bool&gt;da es sich nicht um einen STL-Container handelt und nicht wirklich bools enthält. Der folgende Code: vector &lt;bool&gt; v; bool *pb =&amp;v[0]; wird nicht kompiliert, was eine Anforderung …

6
Moderne Art, STL-Container zu filtern?
Als ich nach Jahren von C # zu C ++ zurückkehrte, fragte ich mich, wie die moderne Methode zum Filtern eines Arrays aussehen würde: Wie können wir etwas Ähnliches wie diese Linq-Abfrage erreichen: var filteredElements = elements.Where(elm =&gt; elm.filterProperty == true); Um einen Vektor von Elementen zu filtern ( stringsum …
97 c++  c++11  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.