Вопросы с тегом «stl»

Стандартная библиотека шаблонов, или STL, представляет собой C ++ библиотеку универсальных контейнеров, итераторов, алгоритмов и функциональных объектов. Когда C ++ был стандартизирован, большие части STL были приняты в Стандартную библиотеку, и эти части в Стандартной библиотеке также иногда ошибочно именуются как «STL».


13
Сортировка вектора пользовательских объектов
Как можно сортировать вектор, содержащий пользовательские (то есть определяемые пользователем) объекты? Вероятно, следует использовать стандартный алгоритм STL для сортировки вместе с предикатом (функцией или объектом функции), который будет работать с одним из полей (в качестве ключа для сортировки) в пользовательском объекте. Я на правильном пути?
249 c++  stl  sorting 

8
Нужно ли std :: unique_ptr <T> знать полное определение T?
У меня есть код в заголовке, который выглядит следующим образом: #include &lt;memory&gt; class Thing; class MyClass { std::unique_ptr&lt; Thing &gt; my_thing; }; Если я включаю этот заголовок в cpp, который не включает Thingопределение типа, то он не компилируется под VS2010-SP1: 1&gt; C: \ Program Files (x86) \ Microsoft Visual Studio …

17
Как извлечь все ключи (или значения) из std :: map и поместить их в вектор?
Это один из возможных способов выхода: struct RetrieveKey { template &lt;typename T&gt; typename T::first_type operator()(T keyValuePair) const { return keyValuePair.first; } }; map&lt;int, int&gt; m; vector&lt;int&gt; keys; // Retrieve all keys transform(m.begin(), m.end(), back_inserter(keys), RetrieveKey()); // Dump all keys copy(keys.begin(), keys.end(), ostream_iterator&lt;int&gt;(cout, "\n")); Конечно, мы также можем извлечь все значения …
246 c++  dictionary  stl  stdmap 

10
Как суммировать элементы вектора C ++?
Каковы хорошие способы найти сумму всех элементов в std::vector? Предположим, у меня есть вектор std::vector&lt;int&gt; vectorс несколькими элементами. Теперь я хочу найти сумму всех элементов. Каковы разные способы для того же?
240 c++  stl  vector 

27
Зачем использовать итераторы вместо индексов массивов?
Возьмите следующие две строки кода: for (int i = 0; i &lt; some_vector.size(); i++) { //do stuff } И это: for (some_iterator = some_vector.begin(); some_iterator != some_vector.end(); some_iterator++) { //do stuff } Мне сказали, что второй способ предпочтительнее. Почему именно это?

16
вектор против списка в STL
Я заметил в Effective STL, что вектор - это тип последовательности, который должен использоваться по умолчанию. Что это значит? Кажется, что игнорировать эффективность vectorможет все что угодно. Может ли кто-нибудь предложить мне сценарий, в котором vectorвариант невозможен, но listдолжен использоваться?
239 c++  list  vector  stl 

17
Удалить пробелы из std :: string в C ++
Каков предпочтительный способ удаления пробелов из строки в C ++? Я мог бы перебрать все символы и создать новую строку, но есть ли лучший способ?
222 c++  stl 

2
Почему я не могу push_back уникальный_птр в вектор?
Что не так с этой программой? #include &lt;memory&gt; #include &lt;vector&gt; int main() { std::vector&lt;std::unique_ptr&lt;int&gt;&gt; vec; int x(1); std::unique_ptr&lt;int&gt; ptr2x(&amp;x); vec.push_back(ptr2x); //This tiny command has a vicious error. return 0; } Ошибка: In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/mingw32/bits/c++allocator.h:34:0, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/allocator.h:48, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:64, from main.cpp:6: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h: In member function 'void __gnu_cxx::new_allocator&lt;_Tp&gt;::construct(_Tp*, const _Tp&amp;) …


15
C ++ сортировка и отслеживание индексов
Используя C ++ и, надеюсь, стандартную библиотеку, я хочу отсортировать последовательность выборок в порядке возрастания, но я также хочу запомнить исходные индексы новых выборок. Например, у меня есть набор или вектор, или матрица образцов A : [5, 2, 1, 4, 3]. Я хочу отсортировать их так, чтобы они были B …
216 c++  sorting  stl  indexing 

22
Является ли std :: vector намного медленнее, чем обычные массивы?
Я всегда думал, что это общая мудрость std::vector "реализована в виде массива", бла-бла-бла. Сегодня я спустился и проверил это, и, кажется, это не так: Вот некоторые результаты теста: UseArray completed in 2.619 seconds UseVector completed in 9.284 seconds UseVectorPushBack completed in 14.669 seconds The whole thing completed in 26.591 seconds …
212 c++  arrays  performance  stl  vector 

13
Почему C ++ STL так сильно основан на шаблонах? (а не на * интерфейсах *)
Я имею в виду, кроме его обязательного имени (Стандартная библиотека шаблонов) ... Изначально C ++ предназначался для представления концепций ООП в C. То есть: вы можете сказать, что конкретная сущность может и не может делать (независимо от того, как она это делает), основываясь на своем классе и иерархии классов. Некоторые …
211 c++  oop  templates  stl 



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.