Pytania otagowane jako stl

Standardowa biblioteka szablonów (STL) to biblioteka C ++ zawierająca ogólne kontenery, iteratory, algorytmy i obiekty funkcji. Kiedy C ++ został znormalizowany, duże części STL zostały zaadoptowane do Biblioteki Standardowej, a te części w Bibliotece Standardowej są czasami błędnie określane zbiorczo jako „STL”.


5
Korzystanie z niestandardowego komparatora std :: set
На этот вопрос есть ответы на Stack Overflow на русском : Компаратор для set Próbuję zmienić domyślną kolejność elementów w zestawie liczb całkowitych, aby były leksykograficzne, a nie numeryczne, i nie mogę skompilować następujących elementów za pomocą g ++: file.cpp: bool lex_compare(const int64_t &a, const int64_t &b) { stringstream s1,s2; …
110 c++  stl 

6
Dlaczego zwracanie „wektora” z funkcji jest w porządku?
Proszę wziąć pod uwagę ten kod. Widziałem ten typ kodu kilka razy. wordsjest wektorem lokalnym. Jak można go zwrócić z funkcji? Czy możemy zagwarantować, że nie umrze? 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" << "\n"; std::exit(-1); } std::vector<string> words;//this vector …


9
Gdzie mogę znaleźć „użyteczny” algorytm wyszukiwania binarnego w języku C ++?
Potrzebuję binarnego algorytmu wyszukiwania, który jest kompatybilny z kontenerami C ++ STL, coś std::binary_searchw rodzaju <algorithm>nagłówka biblioteki standardowej , ale potrzebuję go do zwrócenia iteratora wskazującego na wynik, a nie prostej wartości logicznej informującej mnie, czy element istnieje. (Na marginesie, o czym myślała do cholery standardowa komisja, definiując API dla …


10
Dlaczego std :: set nie ma funkcji składowej „zawiera”?
Używam mocno std::set<int>i często po prostu muszę sprawdzić, czy taki zestaw zawiera liczbę, czy nie. Uznałbym za naturalne napisanie: if (myset.contains(number)) ... Ale z powodu braku containsczłonka muszę napisać uciążliwe: if (myset.find(number) != myset.end()) .. lub nie tak oczywiste: if (myset.count(element) > 0) .. Czy istnieje powód takiej decyzji projektowej?
103 c++  stl  stdset 

6
Dlaczego wektor <bool> nie jest kontenerem STL?
Punkt 18 książki Scotta Meyersa Efektywny STL: 50 konkretnych sposobów na poprawę korzystania ze standardowej biblioteki szablonów mówi, aby tego unikać, vector &lt;bool&gt;ponieważ nie jest to kontener STL i tak naprawdę nie zawiera bools. Poniższy kod: vector &lt;bool&gt; v; bool *pb =&amp;v[0]; nie skompiluje się, naruszając wymóg kontenerów STL. Błąd: …

6
Nowoczesny sposób na filtrowanie pojemnika STL?
Wracając do C ++ po latach C #, zastanawiałem się jaki byłby nowoczesny - czytaj: C ++ 11 - sposób filtrowania tablicy, czyli jak możemy osiągnąć coś podobnego do tego zapytania Linq: var filteredElements = elements.Where(elm =&gt; elm.filterProperty == true); Aby przefiltrować wektor elementów ( stringsze względu na to pytanie)? …
103 c++  c++11  stl 


6
string c_str () a data ()
Przeczytałem kilka miejsc, w których różnica między c_str()i data()(w STL i innych implementacjach) jest taka, że c_str()jest zawsze zakończona wartością null, podczas gdy data()nie jest. O ile widziałem w rzeczywistych implementacjach, albo robią to samo, albo data()wywołują c_str(). Czego tu brakuje? Który z nich jest bardziej odpowiedni do wykorzystania w …
102 c++  stl  c-str 

5
Kasowanie elementów z wektora
Chcę usunąć element z wektora za pomocą metody wymazywania. Ale problem polega na tym, że nie ma gwarancji, że element wystąpi tylko raz w wektorze. Może występować wiele razy i muszę je wszystkie usunąć. Mój kod wygląda mniej więcej tak: void erase(std::vector&lt;int&gt;&amp; myNumbers_in, int number_in) { std::vector&lt;int&gt;::iterator iter = myNumbers_in.begin(); …
101 c++  vector  stl  erase 

4
Dostęp do elementów mapy const w C ++
Próbowałem użyć operatora [], aby uzyskać dostęp do elementu w mapie const C ++, ale ta metoda zawiodła. Próbowałem też użyć „at ()”, aby zrobić to samo. Tym razem zadziałało. Jednak nie mogłem znaleźć żadnego odniesienia do używania "at ()" w celu uzyskania dostępu do elementu w mapie const C …
101 c++  stl  map  const 

3
Czy implementacja gcc std :: unordered_map jest powolna? Jeśli tak - dlaczego?
Tworzymy oprogramowanie o wysokiej wydajności w języku C ++. Tam potrzebujemy współbieżnej mapy skrótów i zaimplementowanej. Dlatego napisaliśmy test porównawczy, aby dowiedzieć się, o ile wolniej jest porównywana nasza współbieżna mapa skrótów std::unordered_map. Ale std::unordered_mapwydaje się być niesamowicie powolny ... Więc to jest nasz mikro-test porównawczy (dla mapy współbieżnej stworzyliśmy …

2
Dlaczego w C ++ 20 wprowadzono std :: ssize ()?
C ++ 20 wprowadził std::ssize()bezpłatną funkcję, jak poniżej: template &lt;class C&gt; constexpr auto ssize(const C&amp; c) -&gt; std::common_type_t&lt;std::ptrdiff_t, std::make_signed_t&lt;decltype(c.size())&gt;&gt;; Wydaje się static_cast, że możliwa implementacja polega na przekształceniu wartości zwracanej size()funkcji składowej klasy C na jej podpisany odpowiednik. Ponieważ size()funkcja składowa C zawsze zwraca wartości nieujemne, dlaczego ktoś miałby chcieć …
99 c++  stl  unsigned  signed  c++20 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.