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

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

8
Как я могу создать Min stl priority_queue?
Очередь с приоритетом stl по умолчанию - максимальная (функция Top возвращает самый большой элемент). Скажем, для простоты, это очередь приоритетов значений типа int.
110 c++  stl  priority-queue 

5
Использование настраиваемого компаратора std :: set
На этот вопрос есть ответы на Stack Overflow на русском : Компаратор для набора Я пытаюсь изменить порядок элементов по умолчанию в наборе целых чисел, чтобы он был лексикографическим, а не числовым, и я не могу получить следующее для компиляции с g ++: file.cpp: bool lex_compare(const int64_t &a, const int64_t …
110 c++  stl 

6
Почему можно возвращать «вектор» из функции?
Пожалуйста, обратите внимание на этот код. Я видел этот тип кода несколько раз. words- локальный вектор. Как можно вернуть его из функции? Можем ли мы гарантировать, что он не умрет? std::vector<std::string> read_file(const std::string& path) { std::ifstream file("E:\\names.txt"); if (!file.is_open()) { std::cerr << "Unable to open file" << "\n"; std::exit(-1); } …

9
Где я могу найти «полезный» алгоритм двоичного поиска C ++?
Мне нужен алгоритм двоичного поиска, совместимый с контейнерами C ++ STL, что-то вроде заголовка std::binary_searchстандартной библиотеки <algorithm>, но мне нужно, чтобы он возвращал итератор, указывающий на результат, а не простое логическое значение, сообщающее мне, существует ли элемент. (Кстати, о чем, черт возьми, думал стандартный комитет, когда определяли API для binary_search …

4
Как безопасно передавать объекты, особенно объекты STL, в и из библиотеки DLL?
Как передать объекты класса, особенно объекты STL, в C ++ DLL и обратно? Мое приложение должно взаимодействовать со сторонними плагинами в виде файлов DLL, и я не могу контролировать, на каком компиляторе созданы эти плагины. Я знаю, что не существует гарантированного ABI для объектов STL, и меня беспокоит нестабильность моего …
106 c++  windows  dll  stl  abi 

10
Почему std :: set не имеет функции-члена «содержит»?
Я активно использую, std::set<int>и часто мне просто нужно проверить, содержит ли такой набор число или нет. Я считаю естественным написать: if (myset.contains(number)) ... Но из-за отсутствия containsчлена мне нужно написать громоздкое: if (myset.find(number) != myset.end()) .. или не такое очевидное: if (myset.count(element) > 0) .. Есть ли причина для такого …
103 c++  stl  stdset 

2
Какие классы исключений есть в стандартной библиотеке C ++
Какие классы исключений включены в стандартную библиотеку C ++ и для чего их следует использовать? Я знаю, что есть несколько новых исключений C ++ 11, но я не уверен, что это такое и где они находятся.
103 c++  exception  c++11  stl 

6
Почему vector <bool> не является контейнером STL?
В пункте 18 книги Скотта Мейерса « Эффективный STL: 50 конкретных способов улучшить использование стандартной библиотеки шаблонов» говорится, что следует избегать, vector &lt;bool&gt;поскольку это не контейнер STL и на самом деле не содержит bools. Следующий код: vector &lt;bool&gt; v; bool *pb =&amp;v[0]; не будет компилироваться, нарушая требования контейнеров STL. Ошибка: …

6
строка c_str () vs. data ()
Я читал несколько мест, где разница между c_str()и data()(в STL и других реализациях) заключается в том, что c_str()всегда завершается нулем, а data()нет. Насколько я видел в реальных реализациях, они либо делают то же самое, либо data()вызывают c_str(). Что мне здесь не хватает? Какой из них правильнее использовать в каких сценариях?
102 c++  stl  c-str 

5
Удаление элементов из вектора
Я хочу удалить элемент из вектора с помощью метода стирания. Но проблема здесь в том, что элемент не обязательно встречается в векторе только один раз. Он может присутствовать несколько раз, и мне нужно удалить их все. Мой код выглядит примерно так: void erase(std::vector&lt;int&gt;&amp; myNumbers_in, int number_in) { std::vector&lt;int&gt;::iterator iter = …
102 c++  vector  stl  erase 

4
Доступ к элементу карты const в C ++
Я попытался использовать оператор [] для доступа к элементу на карте const C ++, но этот метод не удался. Я также пытался использовать "at ()", чтобы сделать то же самое. На этот раз это сработало. Однако я не смог найти никаких ссылок на использование "at ()" для доступа к элементу …
101 c++  stl  map  const 


3
Медленная реализация gcc std :: unordered_map? Если да, то почему?
Мы разрабатываем высокопроизводительное критически важное программное обеспечение на C ++. Там нам нужна параллельная хеш-карта и реализованная. Итак, мы написали тест, чтобы выяснить, насколько медленнее наша параллельная хэш-карта по сравнению с std::unordered_map. Но, std::unordered_mapкажется, невероятно медленно ... Так что это наш микро-тест (для одновременного отображения мы породили новую нить , …

2
Почему std :: ssize () введен в C ++ 20?
C ++ 20 представил std::ssize()бесплатную функцию, как показано ниже: template &lt;class C&gt; constexpr auto ssize(const C&amp; c) -&gt; std::common_type_t&lt;std::ptrdiff_t, std::make_signed_t&lt;decltype(c.size())&gt;&gt;; Возможная реализация, похоже, использует static_castдля преобразования возвращаемого значения функции- size()члена cl ass C в ее подписанный аналог. Поскольку size()функция-член C всегда возвращает неотрицательные значения, зачем кому-то хранить их в переменных …
100 c++  stl  unsigned  signed  c++20 


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