Вопросы по теме 'c++-standard-library'
Странная ошибка при вставке в С++ std::map
Я пытаюсь вставить несколько пар значений в std::map. В первом случае я получаю указатель на карту, разыменовываю ее и использую оператор индекса для присвоения значения. то есть
(*foo)[index] = bar;
Позже, когда я пытаюсь выполнить...
3355 просмотров
schedule
25.12.2023
Как заставить IOStream работать лучше?
Большинство пользователей C++, изучивших C, предпочитают использовать семейство функций printf / scanf , даже когда они пишут код на C++.
Хотя я признаю, что нахожу интерфейс намного лучше (особенно POSIX-подобный формат и локализацию), кажется,...
29006 просмотров
schedule
27.08.2022
В чем разница между стандартной библиотекой STL и C ++?
Кто-то принес эту статью в мою внимание, что утверждает, что (я перефразирую) термин STL неправильно используется для обозначения всей стандартной библиотеки C ++, а не частей, взятых из SGI STL.
(...) это относится к STL, несмотря на то, что...
99784 просмотров
schedule
11.07.2022
Делает ли std::vector::insert() недействительными итераторы, если в векторе достаточно места (созданного за счет резерва)?
Ответ на Как самостоятельно скопировать вектор? меня немного смутил об инвалидации итератора. В некоторой литературе говорится: «Если вы используете вставку, push_back и т. д., считайте все итераторы недействительными». Это ясно, это может...
2478 просмотров
schedule
19.04.2022
Как вставить rvalue в карту после вызова на ней функции
Я пытаюсь использовать std::unordered_map<std::string, std::shared_ptr<CObject>> (далее именуемый картой), чтобы иметь возможность использовать карту для вызова одних и тех же функций для разных объектов на основе их имени. Указатели...
213 просмотров
schedule
15.12.2022
Потокобезопасность контейнера стандартной библиотеки C++ по отношению к содержащимся объектам
Мой вопрос заключается в том, предоставляют ли контейнеры, такие как вектор, набор, очередь, карта, мультикарта и т. д., свои стандартные гарантии безопасности потоков (т. е. параллельные потоки могут вызывать константные методы и т. д.) независимо от...
1311 просмотров
schedule
23.04.2022
Каковы возможные способы сделать пользовательский тип возможным ключом для карты
Недавно мне задали вопрос, как сделать настраиваемый тип возможным ключом для stl :: map.
Сразу же я ответил им, что нужно перегрузить операторную функцию «‹ », чтобы поддерживать настраиваемый тип. Вот ссылка " ссылка настраиваемого типа "...
160 просмотров
schedule
02.05.2024
Может ли реализация стандартной библиотеки специализировать стандартные типы?
Например, предположим ради аргумента, что найдена более эффективная (хранение, операции над ним) реализация для вектора целочисленных типов (по сравнению с универсальной реализацией вектора). Может ли стандартная соответствующая библиотека сделать...
144 просмотров
schedule
02.06.2022
Как получить текущий локализованный шаблон для даты и времени std::locale
Пока я могу получить текущую локаль, но я хочу получить формат даты для этой конкретной локали. Можно ли это сделать с помощью стандартной библиотеки.
#include <locale>
int _tmain(int argc, _TCHAR* argv[])
{
// Print the current locale...
2638 просмотров
schedule
17.06.2022
equal_range и диапазон для
Обсуждая multimap со своими студентами, я заметил небольшое изменение, которое могло убрать часть шаблона, и мне было интересно, предлагал ли кто-нибудь это комитету по стандартизации, и если да, то каков был ответ.
Канонический метод перебора...
875 просмотров
schedule
22.05.2023
Допустимо ли для реализации стандартной библиотеки иметь определение класса, отличное от стандарта C ++?
Следующий код успешно скомпилирован с помощью clang и MSVC, но не может быть скомпилирован в GCC 6.1.0.
#include <memory>
template<typename R, typename T, typename... Args>
T* test(R(T::*)(Args...) const)
{
return nullptr;
}
int...
285 просмотров
schedule
04.01.2023
Насколько похожи Boost.Filesystem и стандартная библиотека файловой системы C ++?
Мне нужна библиотека файловой системы для использования с компилятором, поддерживающим C ++ 11, или компилятором, поддерживающим C ++ 14, так что это не может быть из C ++ 17.
Теперь я знаю, что библиотека файловой системы в C ++ 17 основана на...
6193 просмотров
schedule
13.04.2022
поиск гетерогенных контейнеров в C++98
В проекте, над которым я работаю, я вынужден использовать С++ 98. Имея необходимость выполнять быстрый поиск в определенных векторах структур, используя только несколько элементов этих структур в качестве ключей, я до сих пор с удовольствием...
112 просмотров
schedule
08.11.2022
Распределенный в стеке std::string сообщает об утечке памяти valgrind
На компьютере с Linux запустите этот скрипт, чтобы скомпилировать небольшое приложение C++ и запустить его под управлением valgrind:
#!/bin/bash
set -x -e
cd /tmp
cat > main.cpp <<EOF
#include <stdlib.h> // exit()
#include...
631 просмотров
schedule
29.04.2023
Почему нет оператора‹ для класса std::weak_ptr?
Я использую слабые указатели в качестве ключей на карте. Однако, когда я попытался скомпилировать, я получил уродливые сообщения, которые я интерпретировал как означающие, что мне не хватает оператора сравнения для std::weak_ptr, который, очевидно,...
756 просмотров
schedule
23.10.2022
ref-квалификаторы для оператора присваивания типов стандартных библиотек
Мне было интересно, есть ли причина, по которой оператор присваивания стандартных типов не имеет lvalue ref-qualified? Ни один из них.
Из-за этого мы можем писать такие вещи, как это:
std::string{} = "42";
std::string s = "hello " +...
102 просмотров
schedule
23.01.2023
Является ли эта реализация подкачки без разрушения допустимой в соответствии со стандартом?
Я предлагаю эту реализацию swap , если она действительна, превосходит текущую реализацию std::swap :
#include <new>
#include <type_traits>
template<typename T>
auto swap(T &t1, T &t2) ->
typename...
175 просмотров
schedule
21.04.2022
Сбивающий с толку результат сравнения функции std::sort (stable_sort) с возвращаемым значением
У меня есть следующая простая программа. В test1 и test2 я пытался отсортировать 2 строки "2" и "1", и в приведенном ниже примере функция compare всегда будет возвращать false.
#include <iostream>
#include <vector>
#include...
463 просмотров
schedule
03.10.2022
Предоставляет ли стандартная библиотека C ++ более компактную и обобщенную версию идиомы удаления-удаления?
Мы можем удалить один элемент / запись из контейнера с помощью популярной идиомы erase – remove . Однако многие из нас столкнулись бы с некоторыми проблемами при применении этой идиомы:
можно легко попасть в ловушку опечаток , например...
657 просмотров
schedule
06.09.2022
Сравнение std::string и строковых литералов в стиле C
Предположим, у меня есть следующий код:
#include <iostream>
#include <string>
#include <iomanip>
using namespace std; // or std::
int main()
{
string s1{ "Apple" };
cout << boolalpha;
cout << (s1 ==...
572 просмотров
schedule
26.01.2023