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”.


2
std :: back_inserter dla std :: set?
Myślę, że to proste pytanie. Muszę zrobić coś takiego: std::set<int> s1, s2; s1 = getAnExcitingSet(); std::transform(s1.begin(), s1.end(), std::back_inserter(s2), ExcitingUnaryFunctor()); Oczywiście std::back_inserternie działa, ponieważ nie ma push_back. std::inserterrównież potrzebuje iteratora? Nie korzystałem, std::inserterwięc nie wiem, co robić. Czy ktoś ma pomysł? Oczywiście moją drugą opcją jest użycie wektora dla s2, a …
98 c++  algorithm  stl 


8
wektor :: at a wektor :: operator []
Wiem, że at()jest to wolniejsze niż []ze względu na sprawdzanie granic, które jest również omawiane w podobnych pytaniach, takich jak C ++ Vector at / [] operator speed lub :: std :: vector :: at () vs operator [] << zaskakujące wyniki !! 5 do 10 razy wolniej / szybciej! …
95 c++  stl  stdvector 


2
jak dołączyć obiekt list <T> do innego
w C ++ mam dwa list&lt;T&gt;obiekty Ai Bchcę dodać wszystkie składowe Bna końcu A. Przeszukałem kilka różnych źródeł i nie znalazłem prostego rozwiązania (ei A.append(B);) i to mnie trochę zaskakuje. Jaki jest najlepszy sposób, aby to zrobić? Tak się składa, że ​​po tym nie obchodzi mnie B (zostaje usunięte w …
94 c++  list  stl 


8
Którego kontenera STL powinienem użyć do FIFO?
Który pojemnik STL najlepiej pasowałby do moich potrzeb? Zasadniczo mam pojemnik o szerokości 10 elementów, w którym ciągle wprowadzam push_backnowe elementy, podczas pop_frontgdy najstarszy element (około milion razy). Obecnie używam std::dequedo tego zadania, ale zastanawiałem się, czy a std::listbyłoby bardziej wydajne, ponieważ nie musiałbym zmieniać swojej alokacji (a może mylę …
93 c++  stl  fifo 

7
Sprawdzanie zawartości standardowego kontenera (std :: map) za pomocą gdb
Przypuśćmy, że mamy coś takiego: #include &lt;map&gt; int main(){ std::map&lt;int,int&gt; m; m[1] = 2; m[2] = 4; return 0; } Chciałbym móc sprawdzić zawartość mapy, na której działa program z gdb. Jeśli spróbuję użyć operatora indeksu dolnego, otrzymam: (gdb) p m[1] Attempt to take address of value not located in …
93 c++  stl  map  gdb 

8
std :: map insert lub std :: map find?
Zakładając mapę, na której chcesz zachować istniejące wpisy. W 20% przypadków wpis, który wstawiasz, to nowe dane. Czy jest korzyść z robienia std :: map :: find then std :: map :: insert przy użyciu tego zwróconego iteratora? A może szybciej jest próba wstawienia, a następnie działanie w oparciu o …
93 c++  optimization  stl  stdmap 

8
Alternatywa dla wektora <bool>
Jak (miejmy nadzieję) wszyscy wiemy, vector&lt;bool&gt;jest całkowicie zepsuty i nie może być traktowany jako tablica C. Jaki jest najlepszy sposób na uzyskanie tej funkcjonalności? Do tej pory pomysły, o których myślałem, to: Użyj vector&lt;char&gt;zamiast tego lub Użyj klasy opakowania i użyj vector&lt;bool_wrapper&gt; Jak radzicie sobie z tym problemem? Potrzebuję c_array()funkcjonalności. …
92 c++  stl  vector  boolean 

6
Początkowa pojemność wektora w C ++
Co to capacity()jest, std::vectorktóry jest tworzony przy użyciu domyślnego konstruktora? Wiem, że to size()jest zero. Czy możemy stwierdzić, że domyślnie skonstruowany wektor nie wywołuje alokacji pamięci sterty? W ten sposób byłoby możliwe utworzenie tablicy z dowolną rezerwą przy użyciu jednej alokacji, np std::vector&lt;int&gt; iv; iv.reserve(2345);. Powiedzmy, że z jakiegoś powodu …

2
Dlaczego std :: stack domyślnie używa std :: deque?
Ponieważ jedyne operacje wymagane do użycia kontenera w stosie to: plecy() push_back () pop_back () Dlaczego domyślny kontener jest dla niego deque zamiast wektorem? Czy deque realokacje nie dają bufora elementów przed front (), aby push_front () było wydajną operacją? Czy te elementy nie są marnowane, ponieważ nigdy nie będą …
91 c++  stl  containers 


6
Jak zaktualizować std :: map po użyciu metody find?
Jak zaktualizować wartość klucza std::mappo użyciu findmetody? Mam mapę i deklarację iteratora taką jak ta: map &lt;char, int&gt; m1; map &lt;char, int&gt;::iterator m1_it; typedef pair &lt;char, int&gt; count_pair; Używam mapy do przechowywania liczby wystąpień znaku. Używam Visual C ++ 2010.
90 c++  map  stl  stdmap 

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.