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

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

27
Замена двух значений переменной без использования третьей переменной
Один из самых каверзных вопросов в интервью. Поменяйте местами значения двух переменных, например a=10и b=15. Обычно, чтобы поменять местами значения двух переменных, нам нужна третья переменная, например: temp=a; a=b; b=temp; Теперь необходимо поменять местами значения двух переменных без использования третьей переменной.
104 c++ 

7
Запятая в макросе C / C ++
Скажем, у нас есть такой макрос #define FOO(type,name) type name Что мы могли бы использовать как FOO(int, int_var); Но не всегда так просто: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Конечно, мы могли: typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK что не …
104 c++  c  macros  c-preprocessor 

3
Что такое сопрограммы в C ++ 20?
Что такое сопрограммы в c ++ 20? Чем он отличается от «Parallelism2» и / или «Concurrency2» (посмотрите на изображение ниже)? Изображение ниже взято из ISOCPP. https://isocpp.org/files/img/wg21-timeline-2017-03.png
104 c++  coroutine  c++20 

8
пространства имен для типов перечислений - лучшие практики
Часто требуется несколько перечислимых типов вместе. Иногда возникает конфликт имен. На ум приходят два решения: использовать пространство имен или использовать «более крупные» имена элементов перечисления. Тем не менее, решение с пространством имен имеет две возможные реализации: фиктивный класс с вложенным перечислением или полноценное пространство имен. Я ищу плюсы и минусы …
104 c++  enums  scope  nested 

2
Что такое модуль рендеринга SDL?
Я начинаю с SDL2 и не могу понять, что такое SDL_Renderer. Что это? Что оно делает? В чем разница между SDL_Renderer, SDL_Window, SDL_Surface и SDL_Texture и как они связаны? У меня были проблемы с этим, когда я пытался понять этот вводный код: #include <iostream> #include <SDL2/SDL.h> int main() { /* …
104 c++  sdl  terminology  sdl-2 

2
Могу ли я вызвать memcpy () и memmove () с нулевым «количеством байтов»?
Нужно ли мне случаи лечат , когда я actully не имею ничего перемещать / копировать с memmove()/ memcpy()в крайних случаях int numberOfBytes = ... if( numberOfBytes != 0 ) { memmove( dest, source, numberOfBytes ); } или мне просто вызвать функцию без проверки int numberOfBytes = ... memmove( dest, source, …
104 c++  c  pointers  memcpy  memmove 

4
Возможна ли нулевая ссылка?
Действителен ли этот фрагмент кода (и определено ли поведение)? int &nullReference = *(int*)0; Оба г ++ и лязг ++ компиляция без какого - либо предупреждения, даже при использовании -Wall, -Wextra, -std=c++98, -pedantic, -Weffc++... Конечно, ссылка на самом деле не является нулевой, поскольку к ней нельзя получить доступ (это означало бы …

7
Взвешенные случайные числа
Я пытаюсь реализовать взвешенные случайные числа. Я сейчас просто бьюсь головой об стену и не могу понять этого. В своем проекте (диапазоны рук в холдеме, субъективный анализ эквити олл-ин) я использую случайные функции Boost. Итак, допустим, я хочу выбрать случайное число от 1 до 3 (то есть 1, 2 или …
104 c++  boost  random 

11
Как преобразовать строку в массив символов в C ++?
Я хотел бы преобразовать stringв charмассив, но нет char*. Я знаю, как преобразовать строку в char*(используя mallocили как я разместил ее в своем коде), но это не то, что я хочу. Я просто хочу преобразовать stringв char[size]массив. Является ли это возможным? #include <iostream> #include <string> #include <stdio.h> using namespace std; …

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

7
Чтение и запись двоичного файла
Я пытаюсь написать код, чтобы прочитать двоичный файл в буфер, а затем записать буфер в другой файл. У меня есть следующий код, но в буфере хранится только пара символов ASCII из первой строки файла и ничего больше. int length; char * buffer; ifstream is; is.open ("C:\\Final.gif", ios::binary ); // get …
104 c++  file  binary  buffer 

7
В чем разница между cout, cerr, clog заголовка iostream в с ++? Когда использовать какой?
Я пытался исследовать разницу между cout, cerrи clogв Интернете , но не мог найти идеальный ответ. Я до сих пор не понимаю, когда использовать. Может ли кто-нибудь объяснить мне с помощью простых программ и проиллюстрировать идеальную ситуацию, когда использовать какую? Я посетил этот сайт, который показывает небольшую программу на cerrи …
104 c++  iostream  cout  clog 

9
Были ли когда-нибудь изменения в тихом поведении C ++ с новыми стандартными версиями?
(Я ищу пару примеров, чтобы доказать свою точку зрения, а не список.) Было ли когда-нибудь изменение стандарта C ++ (например, с 98 на 11, с 11 на 14 и т. Д.) Изменяло поведение существующего, правильно сформированного пользовательского кода с определенным поведением - незаметно? т.е. без предупреждения или ошибок при компиляции …

3
Добавляет ли C ++ 14 новые ключевые слова в C ++?
Комитет по стандартам C ++ имеет тенденцию уклоняться от добавления новых ключевых слов в язык, однако с C ++ 11 этого не произошло. Некоторые примеры: constexpr decltype thread_local auto // New usage noexcept nullptr static_assert alignof alignas Есть ли в C ++ 14 новые ключевые слова?
103 c++  c++11  keyword  c++14 

4
Где shared_ptr?
Я так расстроен прямо сейчас, после нескольких часов попыток найти, где находится shared_ptr. Ни в одном из примеров, которые я вижу, не показан полный код, включающий заголовки shared_ptr(и работающий). Просто констатировать std, tr1а <memory>совсем не помогает! Я скачал бусты и все такое, но он все еще не появляется! Может ли …

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