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

194
Что на самом деле является deque в STL?

На этот вопрос есть ответы на Переполнение стека на русском : Особенность размещения элементов в std :: deque Я смотрел на STL контейнеры и пытаясь понять , что они на самом деле (то есть структура данных , используемая), а Deque остановил меня: я сначала подумал , что это был двойной связанный...

192
Почему std :: list :: reverse имеет сложность O (n)?

Почему обратная функция для std::listкласса в стандартной библиотеке C ++ имеет линейное время выполнения? Я думаю, что для двусвязных списков обратная функция должна была быть O (1). Изменение двусвязного списка должно включать переключение указателей головы и...

189
Ты не будешь наследовать от std :: vector

Хорошо, это действительно трудно признаться, но у меня сейчас есть сильное искушение унаследовать std::vector. Мне нужно около 10 индивидуальных алгоритмов для вектора, и я хочу, чтобы они были непосредственно членами вектора. Но, естественно, я хочу иметь и остальную часть std::vectorинтерфейса....

185
Контейнеры STL или Qt?

Каковы плюсы и минусы использования Qt контейнеров ( QMap, QVectorи т.д.) над их STL эквивалент? Я вижу одну причину, чтобы предпочесть Qt: Контейнеры Qt могут передаваться в другие части Qt. Например, они могут использоваться для заполнения a, QVariantа затем a QSettings(хотя с некоторыми...

185
В каком сценарии я использую определенный контейнер STL?

Я читал о контейнерах STL в моей книге по C ++, в частности, о STL и его контейнерах. Теперь я понимаю, что у каждого из них есть свои специфические свойства, и я близок к тому, чтобы запомнить их все ... Но я еще не понимаю, в каком сценарии используется каждый из них. Какое объяснение? Пример...

184
C ++ эквивалент StringBuffer / StringBuilder?

Существует ли в C ++ стандартная библиотека шаблонов классов, которая обеспечивает эффективную функциональность конкатенации строк, аналогичную Cring StringBuilder или Java StringBuffer...

174
Как инициализировать std :: vector из массива в стиле C?

Какой самый дешевый способ инициализации std::vectorиз массива в стиле C? Пример: в следующем классе у меня есть vector, но из-за внешних ограничений данные будут переданы в виде массива в стиле C: class Foo { std::vector<double> w_; public: void set_data(double* w, int len){ // how to...

169
Является ли std :: vector копированием объектов с помощью push_back?

После многих исследований с использованием valgrind я пришел к выводу, что std :: vector делает копию объекта, который вы хотите push_back. Это действительно так ? Вектор не может хранить ссылку или указатель на объект без копии ?!...

168
Преимущества цикла std :: for_each over for

Существует ли какое - либо преимущество std::for_eachнад forциклом? Мне std::for_eachтолько кажется, что мешает удобочитаемости кода. Почему тогда некоторые стандарты кодирования рекомендуют его...

166
Как эффективно очистить очередь std :: queue?

Я использую std :: queue для реализации класса JobQueue. (В основном этот класс обрабатывает каждую работу в порядке FIFO). В одном сценарии я хочу очистить очередь за один раз (удалить все задания из очереди). Я не вижу четкого метода, доступного в классе std :: queue. Как эффективно реализовать...

163
JSTL в JSF2 Facelets ... имеет смысл?

Я хотел бы вывести немного кода Facelets условно. Для этого теги JSTL работают нормально: <c:if test="${lpc.verbose}"> ... </c:if> Тем не менее, я не уверен, что это лучшая практика? Есть ли другой способ достичь моей...

162
Должен ли я хранить целые объекты или указатели на объекты в контейнерах?

Проектирование новой системы с нуля. Я буду использовать STL для хранения списков и карт определенных долгоживущих объектов. Вопрос: Должен ли я гарантировать, что мои объекты имеют конструкторы копирования и хранят копии объектов в моих контейнерах STL, или лучше вообще управлять жизнью и областью...

160
Каковы гарантии сложности стандартных контейнеров?

Видимо ;-) стандартные контейнеры предоставляют некоторую форму гарантий. Какого рода гарантии и каковы различия между различными типами контейнеров? Работая со страницы SGI (о STL ), я придумал это: Container Types: ================ Container: Forward Container Reverse Container Random Access...

160
Как получить std :: vector указатель на необработанные данные?

Я пытаюсь использовать std::vectorв качестве charмассива. Моя функция принимает пустой указатель: void process_data(const void *data); Прежде чем я просто использовал этот код: char something[] = "my data here"; process_data(something); Который работал как ожидалось. Но теперь мне нужна...

159
C ++ valarray против вектора

Я очень люблю векторы. Они изящны и быстры. Но я знаю, что существует то, что называется valarray. Зачем мне использовать valarray вместо вектора? Я знаю, что у valarrays есть некоторый синтаксический сахар, но кроме этого, когда они...

158
Известен ли порядок итерации через std :: map (и гарантирован стандартом)?

Я имею в виду, что мы знаем, что std::mapэлементы отсортированы по ключам. Итак, допустим, что ключи являются целыми числами. Если я итерация от std::map::begin()с std::map::end()использованием for, делает стандартную гарантию того, что я буду перебирать , следовательно , через элементы с ключами,...

157
Что означает итератор-> second?

В C ++, какой тип std::map<>::iterator? Мы знаем, что объект itтипа std::map<A,B>::iteratorимеет перегруженную версию, operator ->которая возвращает a std::pair<A,B>*, и что std::pair<>элемент a имеет firstи second. Но чему соответствуют эти два члена и почему мы должны...