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

C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который будет скомпилирован с помощью компилятора C ++). Используйте тег, зависящий от версии, для вопросов, связанных с конкретной редакцией стандарта [C ++ 11], [C ++ 14], [C ++ 17] или [C ++ 20] и т. Д.

5
Доступ к карте C ++ отбрасывает квалификаторы (const)
Следующий код говорит, что передача карты as constв operator[]метод отбрасывает квалификаторы: #include <iostream> #include <map> #include <string> using namespace std; class MapWrapper { public: const int &get_value(const int &key) const { return _map[key]; } private: map<int, int> _map; }; int main() { MapWrapper mw; cout << mw.get_value(42) << endl; return …
113 c++  stl  const  maps 

8
При использовании заголовков C в C ++ должны ли мы использовать функции из std :: или глобального пространства имен?
C в некоторой степени, не совсем так, является подмножеством C ++. Таким образом, мы можем использовать большинство функций / заголовков C в C ++, немного изменив имя ( stdio.hна cstdio, stdlib.hна cstdlib). На самом деле мой вопрос носит семантический характер. В коде C ++ ( с использованием новейшей версии GCC …
113 c++  language-lawyer  std 

10
Создание UML из кода C ++? [закрыто]
Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow. Закрыт 2 года назад . Уточните этот вопрос Есть ли инструмент, который может анализировать файлы C ++ в проекте и генерировать …
113 c++  uml 

5
бросить новый std :: exception vs throw std :: exception
глядя на код, на который я наткнулся: throw /*-->*/new std::exception ("//... и я всегда думал, что тебе здесь не нужно / не стоит использовать new. Как правильно, оба в порядке, если да, есть ли разница? Кстати, из того, что я вижу, когда "grepping" с помощью PowerShell boost libs никогда не …
113 c++  exception 

14
Std :: map, отслеживающая порядок вставки?
В настоящее время у меня есть объект std::map<std::string,int>, в котором целочисленное значение хранится в уникальном строковом идентификаторе, и я ищу эту строку. Он делает в основном то, что я хочу, за исключением того, что не отслеживает порядок вставки. Поэтому, когда я перебираю карту, чтобы распечатать значения, они сортируются по строке; …

8
Как кратко, портативно и тщательно засеять ГПСЧ mt19937?
Кажется, я вижу много ответов, в которых кто-то предлагает использовать <random>для генерации случайных чисел, обычно вместе с таким кодом: std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(0, 5); dis(gen); Обычно это заменяет какую-то «нечестивую мерзость» типа: srand(time(NULL)); rand()%6; Мы могли бы критиковать старый способ, утверждая, что он time(NULL)обеспечивает низкую энтропию, time(NULL)предсказуемость и …
113 c++  c++11  random 

6
Есть ли автоматический вывод типа в Java?
Есть ли autoв Java такой тип переменной, как в C ++? Пример: for ( auto var : object_array) std::cout << var << std::endl; for( auto var : object_array) var.do_something_that_only_this_particular_obj_can_do(); Я знаю, что в Java есть расширенный цикл for, но есть ли автоматический? Если нет, есть ли какой-нибудь способ это сделать? …
113 java  c++  auto 

6
Почему мы можем использовать std :: move для объекта const?
В C ++ 11 мы можем написать такой код: struct Cat { Cat(){} }; const Cat cat; std::move(cat); //this is valid in C++11 когда я звоню std::move, это означает, что я хочу переместить объект, т.е. я изменю объект. Перемещать constобъект нецелесообразно, так почему бы std::moveне ограничить такое поведение? В будущем …
113 c++  c++11 

9
Какой способ вставки на карту является предпочтительным / идиоматическим?
Я выделил четыре разных способа вставки элементов в std::map: std::map<int, int> function; function[0] = 42; function.insert(std::map<int, int>::value_type(0, 42)); function.insert(std::pair<int, int>(0, 42)); function.insert(std::make_pair(0, 42)); Какой из них предпочтительный / идиоматический? (А есть ли другой способ, о котором я не подумал?)
113 c++  stl  insert  stdmap  std-pair 



8
Лучшее введение в метапрограммирование шаблонов C ++? [закрыто]
Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow. Закрыт 3 года назад . Уточните этот вопрос Статическое метапрограммирование (также известное как «шаблонное метапрограммирование») - это отличный метод C ++, …

4
Cout синхронизирован / потокобезопасен?
В общем, я предполагаю, что потоки не синхронизируются, пользователь должен выполнить соответствующую блокировку. Однако есть ли coutособая обработка в стандартной библиотеке? То есть, если несколько потоков пишут, coutмогут ли они повредить coutобъект? Я понимаю, что даже при синхронизации вы все равно получите произвольно чередующийся вывод, но гарантировано ли это чередование. …
112 c++  gcc  c++11 


9
Зачем приводить неиспользуемые возвращаемые значения к void?
int fn(); void whatever() { (void) fn(); } Есть ли причина приводить неиспользованное возвращаемое значение к void, или я прав, думая, что это пустая трата времени? Следовать за: Что ж, это кажется довольно всеобъемлющим. Я полагаю, это лучше, чем комментировать неиспользованное возвращаемое значение, поскольку самодокументирующий код лучше, чем комментарии. Лично …
112 c++  c  void 

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