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

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

16
Как конвертировать wstring в строку?
Вопрос в том, как преобразовать строку в строку? У меня есть следующий пример: #include <string> #include <iostream> int main() { std::wstring ws = L"Hello"; std::string s( ws.begin(), ws.end() ); //std::cout <<"std::string = "<<s<<std::endl; std::wcout<<"std::wstring = "<<ws<<std::endl; std::cout <<"std::string = "<<s<<std::endl; } вывод с закомментированной строкой: std::string = Hello std::wstring = …
204 c++  unicode  stl  wstring 

12
В картах STL лучше использовать map :: insert, чем []?
Некоторое время назад у меня была дискуссия с коллегой о том, как вставить значения в карты STL . Я предпочел, map[key] = value; потому что это естественно и понятно для чтения, тогда как он предпочитал map.insert(std::make_pair(key, value)) Я просто спросил его, и никто из нас не может вспомнить причину, по …
201 c++  stl  map  stdmap 

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

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

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

6
Почему std :: map реализован как красно-черное дерево?
Почему std::mapреализовано как красно-черное дерево ? Существует несколько сбалансированных бинарных поисковых деревьев (BST). Каковы были дизайнерские компромиссы при выборе красно-черного дерева?

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

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

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

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

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

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



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

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