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

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

5
Как вы «перераспределяете» в C ++?
Как я могу reallocна C ++? В языке вроде бы отсутствует - есть newи deleteно нетresize ! Мне это нужно, потому что по мере того, как моя программа читает больше данных, мне нужно перераспределить буфер для его хранения. Я не думаю, что deleteиспользовать старый указатель и newиспользовать новый, более крупный …

4
Как я могу создать собственный компаратор для карты?
typedef map<string, string> myMap; При вставке новой пары в myMap, он будет использовать ключ stringдля сравнения своим собственным компаратором строк. Можно ли отменить этот компаратор? Например, я хотел бы сравнить ключ stringпо длине, а не по алфавиту. Или есть другой способ отсортировать карту?
87 c++  stl  stdmap 

2
std :: ignore со структурированными привязками?
Прелюдия: std::tuple<int, int, int> f(); std::tuple<int, int, float, int> g(); C ++ 1z представит синтаксис для структурированных привязок, который позволит писать вместо int a, b, c; std::tie(a, b, c) = f(); что-то вроде auto [a, b, c] = f(); Однако std::tieтакже можно указать std::ignoreигнорировать определенные компоненты, например: std::tie(a, b, std::ignore, …

12
В какой момент цикла целочисленное переполнение становится неопределенным?
Это пример для иллюстрации моего вопроса, который включает в себя гораздо более сложный код, который я не могу здесь опубликовать. #include <stdio.h> int main() { int a = 0; for (int i = 0; i < 3; i++) { printf("Hello\n"); a = a + 1000000000; } } Эта программа содержит …


5
Почему инициализация значения «int * ptr = int ()» не является незаконной?
Следующий код (взят отсюда ): int* ptr = int(); компилируется в Visual C ++ и инициализирует указатель значением. Как такое возможно? Я имею в виду, что int()дает объект типа, intи я не могу присвоить intуказателю. Как приведенный выше код не является незаконным?

6
Как можно ничего не объявлять внутри main () в C ++ и при этом иметь работающее приложение после компиляции?
В интервью я столкнулся с таким вопросом: Ваш друг дал вам единственный файл исходного кода, который печатает числа Фибоначчи на консоли. Обратите внимание, что блок main () пуст и внутри него нет операторов. Объясните, как это возможно (подсказка: глобальный экземпляр!) Я действительно хочу знать об этом, как такое вообще возможно!
86 c++ 

6
Почему ссылки не являются «константными» в C ++?
Мы знаем, что «константная переменная» указывает, что после назначения вы не можете изменить переменную, например: int const i = 1; i = 2; Приведенная выше программа не скомпилируется; gcc выводит сообщение об ошибке: assignment of read-only variable 'i' Нет проблем, я могу это понять, но следующий пример выходит за рамки …



4
Почему константная функция-член может изменять статический член-данные?
В следующей C++программе изменение статического члена данных из constфункции работает нормально: class A { public: static int a; // static data member void set() const { a = 10; } }; Но изменение нестатического члена данных из constфункции не работает: class A { public: int a; // non-static data member …

7
Можно ли вызвать код C ++ из C #?
Можно ли вызвать код C ++, возможно, скомпилированный как файл библиотеки кода (.dll), из языка .NET, такого как C #? В частности, код C ++, такой как сетевая библиотека RakNet.
86 c#  .net  c++  unmanaged  managed 

4
Могу ли я использовать C ++ 11 с Xcode?
Я рассматриваю возможность использования некоторых функций C ++ 11 ( autoнапример, таких) в некоторых кроссплатформенных проектах (Windows + Mac). В Windows Visual Studio поддерживает части будущего стандарта C ++ 11, который позволит мне упростить части базы кода, поэтому, естественно, мне было бы интересно начать использовать эти функции. Но насколько мне …
86 c++  xcode  gcc  c++11  clang 

1
Почему GCC предупреждает меня о провале, даже когда я использую [[провал]]?
В следующем фрагменте кода я использую стандартный [[fallthrough]]атрибут из C ++ 1z для документирования того, что требуется падение: #include <iostream> int main() { switch (0) { case 0: std::cout << "a\n"; [[fallthrough]] case 1: std::cout << "b\n"; break; } } С GCC 7.1 код компилируется без ошибок. Однако компилятор все …

10
Почему я предпочитаю использовать вектор для удаления
поскольку они оба являются непрерывными контейнерами памяти; Что касается функций, в deque есть почти все, что есть в векторе, но даже больше, поскольку его эффективнее вставлять спереди. Почему whould кто предпочитает , std::vectorчтобы std::deque?
86 c++  stl  vector  deque 

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