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

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

7
push_back против emplace_back
Я немного сбит с толку относительно разницы между push_backи emplace_back. void emplace_back(Type&& _Val); void push_back(const Type& _Val); void push_back(Type&& _Val); Поскольку существует push_backперегрузка, принимающая ссылку на rvalue, я не совсем понимаю, для чего это emplace_backделается?


29
Как проще всего инициализировать std :: vector жестко закодированными элементами?
Я могу создать массив и инициализировать его так: int a[] = {10, 20, 30}; Как мне создать std::vectorи инициализировать его так же элегантно? Лучший способ, который я знаю, это: std::vector<int> ints; ints.push_back(10); ints.push_back(20); ints.push_back(30); Есть ли способ лучше?


17
Итерация по std :: vector: unsigned vs знаковая переменная со знаком
Как правильно перебирать вектор в C ++? Рассмотрим эти два фрагмента кода, этот работает нормально: for (unsigned i=0; i < polygon.size(); i++) { sum += polygon[i]; } и этот: for (int i=0; i < polygon.size(); i++) { sum += polygon[i]; } который генерирует warning: comparison between signed and unsigned integer …
470 c++  stl  unsigned  signed 

14
Как узнать, существует ли данный ключ в C ++ std :: map
Я пытаюсь проверить, есть ли данный ключ на карте и почему-то не могу это сделать: typedef map<string,string>::iterator mi; map<string, string> m; m.insert(make_pair("f","++--")); pair<mi,mi> p = m.equal_range("f");//I'm not sure if equal_range does what I want cout << p.first;//I'm getting error here так как я могу распечатать то, что в р?
451 c++  dictionary  stl 


5
В чем разница между «STL» и «C ++ Standard Library»?
Кто-то обратил мое внимание на эту статью , утверждая, что (я перефразирую) термин STL неправильно используется для ссылки на всю Стандартную библиотеку C ++ вместо частей, взятых из SGI STL. (...) это относится к «STL», несмотря на то, что очень немногие люди все еще используют STL (который был разработан в …

14
Почему C ++ STL не предоставляет никаких «древовидных» контейнеров?
Почему C ++ STL не предоставляет никаких «древовидных» контейнеров, и что лучше использовать вместо этого? Я хочу хранить иерархию объектов в виде дерева, а не использовать дерево для повышения производительности ...
373 c++  stl  tree 

9
Почему я не могу сделать вектор ссылок?
Когда я делаю это: std::vector<int> hello; Все отлично работает. Однако, когда я делаю это вектор ссылок вместо этого: std::vector<int &> hello; Я получаю ужасные ошибки, такие как ошибка C2528: указатель: указатель на ссылку недопустим Я хочу поместить несколько ссылок на структуры в вектор, чтобы мне не приходилось вмешиваться в указатели. …


11
Сортировка вектора по убыванию
Должен ли я использовать std::sort(numbers.begin(), numbers.end(), std::greater<int>()); или std::sort(numbers.rbegin(), numbers.rend()); // note: reverse iterators отсортировать вектор в порядке убывания? Есть ли какие-либо преимущества или недостатки с одним подходом или другим?
310 c++  sorting  stl  vector  iterator 

14
Лучший способ извлечь субвектор из вектора?
Предположим, у меня есть std::vector(назовем это myVec) размер N. Какой самый простой способ построить новый вектор, состоящий из копии элементов от X до Y, где 0 <= X <= Y <= N-1? Например, myVec [100000]через myVec [100999]вектор размера 150000. Если это не может быть эффективно сделано с вектором, есть ли …
295 c++  stl  vector  range 

23
Какой самый эффективный способ удалить дубликаты и отсортировать вектор?
Мне нужно взять вектор C ++ с потенциально большим количеством элементов, стереть дубликаты и отсортировать их. В настоящее время у меня есть код ниже, но он не работает. vec.erase( std::unique(vec.begin(), vec.end()), vec.end()); std::sort(vec.begin(), vec.end()); Как я могу правильно сделать это? Кроме того, быстрее ли сначала удалить дубликаты (аналогично приведенному выше) …
274 c++  sorting  vector  stl  duplicates 

4
функции-члены std :: string length () и size ()
Я читал ответы на этот вопрос и обнаружил, что на самом деле есть метод, называемыйlength() для std::string(я всегда использовал size()). Есть ли какая-то конкретная причина для использования этого метода в std::stringклассе? Я прочитал и MSDN и CppRefernce, и они, кажется, указывают, что нет никакой разницы между size()и length(). Если это …
265 c++  string  stl  size 

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