c++-standard-library

Стандартная библиотека предоставляет mutex класс, с возможностью вручную блокировать и разблокировать его: std::mutex m; m.lock(); // ... m.unlock(); Однако библиотека, по-видимому, также признает, что общий случай-это просто заблокировать мьютекс в какой-то момент и разблокировать его при выходе из блока...

Я изучал некоторые функции STL и наткнулся на эту функцию lower_bound .Я в замешательстве, почему люди не используют lower_bound вместо бинарного поиска, поскольку оба делают одно и то же, оба имеют o(log n) сложность. Не лучше ли написать только одну строку кода с lower_bound, чем 8-9 строк операторов if...

У меня есть шаблон функции: template <typename... Us> void set_args(const void* p, Us&... args); У меня есть std::tuple, который я хочу распаковать в args. Мое текущее решение - template <typename... Us, std::size_t... Idx> void set_args_2( const void* p, std::tuple<Us...>& ar...

Почему в глобальном пространстве имен C++существует функция сортировки? Почему этот код компилируется? #include <iostream> #include <vector> int main() { std::vector<int> array(10); sort(array.begin(), array.end()); } PS: clang++ -- std=c++11 --stdlib=libc++ ./тест.cpp...

Я искал наиболее эффективный и выразительный способ удалить последний элемент из std::map. Я попробовал: #include <map> int main() { std::map<int, int> m; m.insert(std::make_pair(1,1)); m.erase(m.crbegin()); return 0; } Код не компилируется, так как std::map::erase может прини...

Я хочу, чтобы преобразовать std::string в нижний регистр. Я знаю о функции tolower(), однако в прошлом у меня были проблемы с этой функцией и вряд ли подходит так как использовать с std::string потребуется итерация по каждому символу. есть ли альтернатива, которая работает 100% времени?...

этот ответ дает хороший обзор высокого уровня оптимизации коротких строк (SSO). Однако я хотел бы узнать более подробно, как это работает на практике, в частности, в реализации libc++: как коротка должна быть строка, чтобы претендовать на SSO? Зависит ли это от целевой архитектуры? как реализация различает ...

у меня есть проект, который в настоящее время использует C++11/14, но он требует что-то вроде std::filesystem, который доступен только в C++17, и поэтому у меня нет возможности использовать его в настоящее время. Я вижу, однако, что он доступен в моем текущем компиляторе как std::experimental::filesystem. Это...

определяет ли стандартная библиотека C++ эту функцию, или мне нужно прибегнуть к Boost? Я искал в интернете и не мог найти ничего, кроме Boost, но я подумал, что лучше спросить Здесь....

в случае использования возникла, когда желая сделать contitional копия (1. выполнимо с copy_if), но из контейнера значений в контейнер указателей на эти значения (2. выполнимо с transform). С помощью доступных инструментов я не могу сделать менее чем за два шага : #include <vector> #include <algo...