c++11 ×32
Создан 06.01.2025
21
голоса
5
ответов
50
просмотров
Как преобразовать int в строку в C++?

Заголовок: Как конвертировать int в эквивалентный string в C++? Есть ли другие способы?

Описание проблемы: Я сталкиваюсь с задачей преобразования целого числа (int) в строку (string) в C++. На данный момент я знаю о двух способах, которые можно использовать для достижения этой...

19
голоса
5
ответов
62
просмотров
Почему следует использовать указатель вместо самого объекта?

Я пришёл из мира Java и начал работать с объектами в C++. Но меня смутило, что многие разработчики часто используют указатели на объекты, а не сами объекты. Например, вот так:

Object *myObject = new Object;

вместо этого:

Object myObject;

Также, вместо того чтобы...

17
голоса
0
ответов
48
просмотров
Что такое лямбда-выражение и когда его следует использовать?

Вопрос: Что такое лямбда-выражение в C++11? В каких ситуациях я мог бы его использовать? Какие классы задач они решают, что было невозможно до их введения?

Несколько примеров и областей применения были бы полезны.

12
голоса
5
ответов
61
просмотров
push_back против emplace_back: в чем разница?

Я немного запутался в различии между методами push_back и emplace_back в стандартной библиотеке C++.

Вот определения этих методов:

void emplace_back(Type&& _Val);
void push_back(const Type& _Val);
void push_back(Type&& _Val);

Учитывая, что существует перегрузка метода...

12
голоса
5
ответов
56
просмотров
Какова разница между 'typedef' и 'using'?

Я знаю, что в C++11 мы можем использовать ключевое слово using для написания псевдонимов типов, аналогично typedef. Например:

typedef int MyInt;

Что, как я понимаю, эквивалентно:

using MyInt = int;

Эта новая синтаксическая конструкция появилась в рамках попытки создать способ для выражения...

11
голоса
4
ответов
55
просмотров
Что такое std::move() и когда его следует использовать?

Проблема: Необходимость в разъяснении функциональности и применения технологии

  1. Что это?
    Я столкнулся с [название технологии или инструмента], и мне не совсем ясно, что это такое и какие его основные характеристики.

  2. Что он делает?
    Хотел бы получить ясное объяснение...

11
голоса
1
ответов
55
просмотров
Что означает T&& (двойной амперсанд) в C++11?

Я изучаю новые возможности C++11, и одна из них, которую я заметил, — это двойной амперсанд при объявлении переменных, например, T&& var.

Во-первых, как называется эта конструкция? Мне бы хотелось, чтобы Google позволял искать подобные символы.

Что именно это означает?

На первый взгляд, кажется,...

8
голоса
5
ответов
46
просмотров
В чем разница между constexpr и const?

Заголовок: В чём разница между constexpr и const в C++?

Тело вопроса:

Я пытаюсь разобраться в различиях между constexpr и const в C++. У меня есть несколько вопросов по этой теме:

  1. Когда я могу использовать только одно из этих ключевых слов?
  2. В каких ситуациях я могу использовать...
8
голоса
5
ответов
41
просмотров
Как преобразовать std::string в int?

Я хочу преобразовать строку в целое число, и я не имею в виду ASCII-коды.

Суть проблемы в том, что мы получаем уравнение в виде строки. Нам нужно разбить его, правильно отформатировать и решить линейные уравнения. При этом у меня не получается преобразовать строку в целое число.

Я знаю, что...

7
голоса
5
ответов
50
просмотров
Когда действительно стоит использовать noexcept?

Когда и как использовать noexcept в C++?

Ключевое слово noexcept может быть применено к многим сигнатурам функций, но я не уверен, когда именно следует использовать его на практике. Из прочитанного мною стало понятно, что добавление noexcept в последний момент решает некоторые важные проблемы,...

6
голоса
5
ответов
36
просмотров
Покончены ли дни передачи const std::string & в качестве параметра?

Я слышал недавний доклад Герба Саттера, который утверждал, что причины передавать std::vector и std::string по const & в значительной мере утратили свою актуальность. Он предложил, что написание функции вроде следующей сейчас предпочтительнее:

std::string do_something ( std::string...
6
голоса
4
ответов
49
просмотров
Каковы преимущества инициализации списка (с использованием фигурных скобок)?

Описание проблемы:

Я столкнулся с вопросом о том, как правильно и эффективно инициализировать объекты класса в C++. У меня есть следующий код:

MyClass a1 {a};     // более очевидно и менее подвержено ошибкам по сравнению с остальными тремя
MyClass a2 = {a};
MyClass a3 = a;
MyClass...
6
голоса
5
ответов
54
просмотров
Возможно ли вывести тип переменной в стандартном C++?

Описание проблемы:

Я пытаюсь вывести тип переменной в C++, но, вместо ожидаемого результата, не могу добиться нужного вывода. Например, у меня есть следующий код:

int a = 12;
cout << typeof(a) << endl;

Я ожидаю, что результат будет:

int

Однако компилятор выдает ошибку,...

5
голоса
5
ответов
31
просмотров
Основные цели std::forward и решаемые им проблемы

Описание проблемы:

Я изучаю концепцию идеальной передачи (perfect forwarding) в C++ и столкнулся с вопросом о том, как работает функция std::forward. В приведенном ниже коде std::forward используется для преобразования именованных rvalue-ссылок t1 и t2 в безымянные...

0
голоса
1
ответов
22
просмотров
Почему `std::initializer_list` не поддерживает оператор подиндексации?

Вопрос:

Я пишу функцию, которая принимает параметр типа std::initializer_list, названный list, и мне необходимо произвести произвольный доступ к элементам этого списка. Было бы удобно использовать list[i] вместо list.begin()[i]. Однако, почему в std::initializer_list не реализован...

0
голоса
5
ответов
14
просмотров
Избежание неявного преобразования в конструкторе: ключевое слово 'explicit' здесь не помогает

Задача заключается в том, чтобы запретить создание объекта класса A при передаче параметра типа double, даже если конструктор помечен как explicit. Я хочу, чтобы объекты класса A могли создаваться только при передаче целочисленного параметра, например, A a1 = A(10);.

Вот мой...

0
голоса
5
ответов
13
просмотров
Функция, принимающая как lvalue, так и rvalue аргументы

Есть ли способ написать функцию на C++, которая принимает как lvalue, так и rvalue аргументы, не используя шаблоны?

Например, предположим, что я пишу функцию print_stream, которая считывает данные из istream и выводит их на экран или что-то в этом роде.

Я считаю вполне разумным вызывать...

0
голоса
0
ответов
16
просмотров
Инициализатор члена не указывает на нестатический член данных или базовый класс

Проблема с инициализацией защищенных членов родительского класса в C++

Я столкнулся с проблемой, когда пытаюсь инициализировать защищенный член родительского класса в списке инициализации конструктора производного класса, и не могу найти решение через Google.

Привожу следующий код для...

0
голоса
0
ответов
14
просмотров
Использование futures в C++11: Вложенные вызовы std::async приводят к сбоям - ошибка компилятора или стандартной библиотеки?

Описание проблемы

После того как я столкнулся с падениями программы при использовании вложенных вызовов std::async, я смог воспроизвести проблему в следующем минимальном примере. Ошибки происходят часто, но не всегда. Видите ли вы что-то, что может быть причиной проблемы, или это ошибка...

0
голоса
0
ответов
13
просмотров
Использование std::make_unique с пользовательским делетором

Я пытаюсь использовать std::unique_ptr с пользовательским делитером и хотел бы воспользоваться std::make_unique, а не сырым оператором new. Я работаю с VC++2013. Мне кажется, что нет способа использовать std::unique_ptr, если есть кастомный делитер. Не пропустил ли я что-то, или это...