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

248
Нужно ли std :: unique_ptr <T> знать полное определение T?

У меня есть код в заголовке, который выглядит следующим образом: #include <memory> class Thing; class MyClass { std::unique_ptr< Thing > my_thing; }; Если я включаю этот заголовок в cpp, который не включает Thingопределение типа, то он не компилируется под VS2010-SP1: 1> C: \ Program...

240
Как суммировать элементы вектора C ++?

Каковы хорошие способы найти сумму всех элементов в std::vector? Предположим, у меня есть вектор std::vector<int> vectorс несколькими элементами. Теперь я хочу найти сумму всех элементов. Каковы разные способы для того...

239
вектор против списка в STL

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

239
Зачем использовать итераторы вместо индексов массивов?

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

222
Удалить пробелы из std :: string в C ++

Каков предпочтительный способ удаления пробелов из строки в C ++? Я мог бы перебрать все символы и создать новую строку, но есть ли лучший

216
C ++ сортировка и отслеживание индексов

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

212
Является ли std :: vector намного медленнее, чем обычные массивы?

Я всегда думал, что это общая мудрость std::vector "реализована в виде массива", бла-бла-бла. Сегодня я спустился и проверил это, и, кажется, это не так: Вот некоторые результаты теста: UseArray completed in 2.619 seconds UseVector completed in 9.284 seconds UseVectorPushBack completed in 14.669...

211
Почему C ++ STL так сильно основан на шаблонах? (а не на * интерфейсах *)

Я имею в виду, кроме его обязательного имени (Стандартная библиотека шаблонов) ... Изначально C ++ предназначался для представления концепций ООП в C. То есть: вы можете сказать, что конкретная сущность может и не может делать (независимо от того, как она это делает), основываясь на своем классе и...

201
В картах STL лучше использовать map :: insert, чем []?

Некоторое время назад у меня была дискуссия с коллегой о том, как вставить значения в карты STL . Я предпочел, map[key] = value; потому что это естественно и понятно для чтения, тогда как он предпочитал map.insert(std::make_pair(key, value)) Я просто спросил его, и никто из нас не может вспомнить...

201
C ++ STL Векторы: Получить итератор из индекса?

Итак, я написал кучу кода, который обращается к элементам вектора stl по индексу [], но теперь мне нужно скопировать только часть вектора. Похоже, vector.insert(pos, first, last)это функция, которую я хочу ... за исключением того, что у меня есть только первый и последний как целые. Есть ли хороший...

200
Сбрасывать самых толстых людей с перегруженного самолета.

Допустим, у вас есть самолет, и у него мало топлива. Если самолет не сбросит 3000 фунтов веса пассажира, он не сможет добраться до следующего аэропорта. Чтобы сохранить максимальное количество жизней, мы хотели бы сначала сбросить с самолета самых тяжелых людей. И о, да, в самолете миллионы людей,...

197
Зачем использовать функции, не являющиеся членами начала и конца, в C ++ 11?

Каждый стандартный контейнер имеет beginи endспособ возвращения итераторов для этого контейнера. Тем не менее, C ++ 11, по- видимому , введенные свободные функции называются std::beginи std::endкоторые называют beginи endчлены функции. Итак, вместо того, чтобы писать auto i = v.begin(); auto e =...