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

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

15
Есть ли готовая к производству очередь без блокировок или хеш-реализация на C ++ [закрыто]
Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow. Закрыт 2 года назад . Уточните этот вопрос Я довольно много искал в Google безблокировочную очередь в C ++. Я нашел …
80 c++  stl  lock-free 

10
как инициализировать 'const std :: vector <T>' как массив переменного тока
Есть ли элегантный способ создать и инициализировать const std::vector&lt;const T&gt;лайк const T a[] = { ... }для фиксированного (и небольшого) количества значений? Мне нужно часто вызывать функцию, которая ожидает a vector&lt;T&gt;, но в моем случае эти значения никогда не изменятся. В принципе придумал что-то вроде namespace { const std::vector&lt;const T&gt; …
79 c++  stl 

4
Контейнер STL с определенным типом в качестве универсального аргумента
Есть ли способ, которым я могу сделать функцию, которая принимает контейнер с определенным типом (скажем, std::stringв качестве параметра) void foo(const std::container&lt;std::string&gt; &amp;cont) { for(std::string val: cont) { std::cout &lt;&lt; val &lt;&lt; std::endl; } } и вызвать его для каждого типа контейнера STL в качестве ввода? как выше? std::set&lt;std::string&gt; strset; std::vector&lt;std::string&gt; …

4
Допустимо ли использовать std :: transform с std :: back_inserter?
Cppreference имеет этот пример кода для std::transform: std::vector&lt;std::size_t&gt; ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -&gt; std::size_t { return c; }); Но это также говорит: std::transformне гарантирует применение в порядке unary_opили binary_op. Чтобы применить функцию к последовательности по порядку или применить функцию, которая изменяет элементы последовательности, используйте std::for_each. Предположительно, это …

3
Способ времени компиляции для определения наименее дорогого типа аргумента
У меня есть шаблон, который выглядит так template &lt;typename T&gt; class Foo { public: Foo(const T&amp; t) : _t(t) {} private: const T _t; }; Есть ли хитрый способ метапрограммирования шаблонов, чтобы избежать использования константной ссылки в тех случаях, когда тип аргумента тривиален, как bool или char? подобно: Foo(stl::smarter_argument&lt;T&gt;::type t) …
15 c++  stl 

2
Как вектор как ключ работает внутри C ++?
Этот SO-ответ говорит, что STL Map с вектором для ключа вектора может использоваться в качестве ключа. Поэтому, когда мы используем вектор в качестве ключа. Как это на самом деле работает, так как ключ должен быть уникальным, поэтому, когда мы вставляем другой вектор с такими же элементами, mapпроверка на дублирующийся элемент …
14 c++  arrays  dictionary  vector  stl 

1
Является ли `string.assign (string.data (), 5)` хорошо определенным или UB?
Коллега хотел написать это: std::string_view strip_whitespace(std::string_view sv); std::string line = "hello "; line = strip_whitespace(line); Я сказал, что возвращение string_viewсделало меня априори непростым , и, кроме того, псевдоним здесь выглядел как UB для меня. Я могу с уверенностью сказать, что line = strip_whitespace(line)в этом случае эквивалентно line = std::string_view(line.data(), 5). …

3
Могу ли я использовать std :: transform вместо политики параллельного выполнения?
Если я не ошибаюсь, я могу заставить std::transformработать на месте , используя тот же диапазон, что и итератор ввода и вывода. Предположим, у меня есть какой-то std::vectorобъект vec, тогда я бы написал std::transform(vec.cbegin(),vec.cend(),vec.begin(),unary_op) используя подходящую унарную операцию unary_op. Используя стандарт C ++ 17, я хотел бы выполнить преобразование параллельно, вставив …

1
Утечка памяти во время исключения unordered_map :: insert KeyEqual с GCC - нарушение строгой гарантии безопасности исключения?
Я использую GCC 7.3.1, но также протестирован на coliru, который я считаю версией 9.2.0. Сборка со следующим: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp Вот rai.cpp: #include &lt;iostream&gt; #include &lt;unordered_map&gt; int main() { try { struct MyComp { bool operator()(const std::string&amp;, const std::string&amp;) const { throw std::runtime_error("Nonono"); } }; std::unordered_map&lt;std::string, std::string, std::hash&lt;std::string&gt;, MyComp&gt; …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.