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

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

15
Как избежать переполнения в expr. A * B - C * D
Мне нужно вычислить выражение, которое выглядит следующим образом:, A*B - C*Dгде их типы: signed long long int A, B, C, D; Каждое число может быть очень большим (не выходя за пределы его типа). Хотя A*Bможет вызвать переполнение, в то же время выражение A*B - C*Dможет быть очень маленьким. Как я …
161 c++  c  integer-overflow 

2
Почему алфавит разделен на несколько диапазонов в этом C-коде?
В пользовательской библиотеке я увидел реализацию: inline int is_upper_alpha(char chValue) { if (((chValue >= 'A') && (chValue <= 'I')) || ((chValue >= 'J') && (chValue <= 'R')) || ((chValue >= 'S') && (chValue <= 'Z'))) return 1; return 0; } Это пасхальное яйцо или в чем преимущества стандартного метода Си …
161 c++  c  character  toupper 

19
Есть ли работающий инструмент C ++ для рефакторинга? [закрыто]
Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека. Закрыто 6 месяцев назад . Улучшить этот вопрос Кто-нибудь знает полнофункциональный инструмент рефакторинга для C ++, который надежно работает с большими …
161 c++  refactoring 

11
Почему конструктор по умолчанию без параметров исчезает при его создании с параметрами
В C #, C ++ и Java, когда вы создаете конструктор, принимающий параметры, стандартный параметр без параметров исчезает. Я всегда только принимал этот факт, но теперь я начал задаваться вопросом, почему. В чем причина такого поведения? Это просто «мера безопасности / догадка», говорящая «Если вы создали собственный конструктор, вы, вероятно …

7
std :: function против шаблона
Благодаря C ++ 11 мы получили std::functionсемейство упаковщиков функторов. К сожалению, я продолжаю слышать только плохие вещи об этих новых дополнениях. Наиболее популярным является то, что они ужасно медленные. Я проверил это, и они действительно сосут по сравнению с шаблонами. #include <iostream> #include <functional> #include <string> #include <chrono> template <typename …

5
Почему мы требуем требует требует?
Один из углов концепций C ++ 20 заключается в том, что есть определенные ситуации, в которых вы должны писать requires requires. Например, этот пример из [expr.prim.req] / 3 : Требуется выражение также может быть использовано в требуете-положение ([Темп]) в качестве способа написания специальных ограничений на аргументах шаблона , такие как …
161 c++  c++-concepts  c++20 

11
Как сгенерировать случайное число на C ++?
Я пытаюсь сделать игру с кубиками, и мне нужно, чтобы в ней были случайные числа (чтобы смоделировать стороны кубика. Я знаю, как сделать это между 1 и 6). С помощью #include <cstdlib> #include <ctime> #include <iostream> using namespace std; int main() { srand((unsigned)time(0)); int i; i = (rand()%6)+1; cout << …
161 c++  random 

3
В чем разница между std :: move и std :: forward
Я видел это здесь: Move Constructor вызывает базовый класс Move Constructor Может ли кто-нибудь объяснить: разница между std::moveи std::forward, желательно с некоторыми примерами кода? Как легко об этом думать, и когда использовать какой

9
Стек, статика и куча в C ++
Я искал, но я не очень хорошо понял эти три понятия. Когда мне нужно использовать динамическое распределение (в куче) и каково его реальное преимущество? В чем проблемы статики и стека? Могу ли я написать целое приложение без размещения переменных в куче? Я слышал, что в других языках есть «сборщик мусора», …

3
Как получить std :: vector указатель на необработанные данные?
Я пытаюсь использовать std::vectorв качестве charмассива. Моя функция принимает пустой указатель: void process_data(const void *data); Прежде чем я просто использовал этот код: char something[] = "my data here"; process_data(something); Который работал как ожидалось. Но теперь мне нужна динамичность std::vector, поэтому я попробовал этот код вместо этого: vector<char> something; *cut* process_data(something); …
160 c++  stl  vector 

3
Каковы гарантии сложности стандартных контейнеров?
Видимо ;-) стандартные контейнеры предоставляют некоторую форму гарантий. Какого рода гарантии и каковы различия между различными типами контейнеров? Работая со страницы SGI (о STL ), я придумал это: Container Types: ================ Container: Forward Container Reverse Container Random Access Container Sequence Front Insert Sequence Back Insert Sequence Associative Container Simple Associative …
160 c++  stl  containers  big-o 

14
Самый быстрый способ захвата экрана в Windows
Я хочу написать программу для экрана для платформы Windows, но не знаю, как сделать снимок экрана. Единственный известный мне метод - это использовать GDI, но мне любопытно, есть ли другие способы сделать это, и, если есть, то какие издержки наименьшие? Скорость является приоритетом. Программа для создания скринкастинга будет предназначена для …
159 c++  c  windows 

12
Как печатать на консоль при использовании Qt
Я использую Qt4 и C ++ для создания некоторых программ в компьютерной графике. Мне нужно иметь возможность печатать некоторые переменные в консоли во время выполнения, не отлаживая, но cout, похоже, не работает, даже если я добавляю библиотеки. Есть ли способ сделать это?
159 c++  qt  cout 

9
C ++ valarray против вектора
Я очень люблю векторы. Они изящны и быстры. Но я знаю, что существует то, что называется valarray. Зачем мне использовать valarray вместо вектора? Я знаю, что у valarrays есть некоторый синтаксический сахар, но кроме этого, когда они полезны?

13
Что на самом деле означает «память, выделенная во время компиляции»?
В языках программирования, таких как C и C ++, люди часто ссылаются на статическое и динамическое распределение памяти. Я понимаю концепцию, но фраза «Вся память была выделена (зарезервирована) во время компиляции» всегда смущает меня. Компиляция, насколько я понимаю, преобразует код высокого уровня C / C ++ в машинный язык и …

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