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

79
Что такое хороший простой в использовании профилировщик для C ++ в Linux? [закрыто]

Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow. Закрыт 6 лет назад . Уточните этот вопрос Мне нужно профилировать код, работающий на C ++...

79
Самый полезный ярлык в Eclipse CDT

Я хотел бы сделать шпаргалку с наиболее полезным (и экономящим время) ярлыком для Eclipse CDT (C ++). Не могли бы вы рассказать, какие наиболее полезные ярлыки вы используете в CDT? Пожалуйста, размещайте только общие ярлыки (доступные при работе с C ++) или специфичные для CDT....

79
Поиск в отсортированном и повернутом массиве

Готовясь к собеседованию, я наткнулся на интересный вопрос: Вам был предоставлен массив, который сортируется, а затем вращается. Например: Пусть arr = [1,2,3,4,5], что отсортировано Дважды поверните его вправо, чтобы дать [4,5,1,2,3]. Теперь, как лучше всего искать в этом отсортированном +...

79
Неопределенная ссылка на static const int

Я сегодня столкнулся с интересной проблемой. Рассмотрим этот простой пример: template <typename T> void foo(const T & a) { /* code */ } // This would also fail // void foo(const int & a) { /* code */ } class Bar { public: static const int kConst = 1; void func() { foo(kConst); //...

79
Почему деление модуля (%) работает только с целыми числами?

Недавно я столкнулся с проблемой, которую можно было легко решить с помощью модульного деления, но ввод был с плавающей точкой: Учитывая периодическую функцию (например, sin) и компьютерную функцию, которая может вычислять ее только в пределах диапазона периодов (например, [-π, π]), создайте...

79
С ++ vector's insert и push_back разница

Я хочу знать , что есть разница (s) между vector«s push_backи insertфункциями. Есть ли структурные различия? Есть ли действительно большая разница в производительности?...

79
Неиспользуемый параметр в c ++ 11

В c ++ 03 и ранее, чтобы отключить предупреждение компилятора о неиспользуемом параметре, я обычно использую такой код: #define UNUSED(expr) do { (void)(expr); } while (0) Например int main(int argc, char *argv[]) { UNUSED(argc); UNUSED(argv); return 0; } Но макросы - не лучшая практика для C ++,...

79
Как эмулировать EBO при использовании необработанного хранилища?

У меня есть компонент, который я использую при реализации низкоуровневых универсальных типов, которые хранят объект произвольного типа (может быть, а может и не быть типом класса), который может быть пустым, чтобы воспользоваться преимуществами оптимизации пустой базы : template <typename T,...

79
Почему тернарный оператор используется для определения 1 и 0 в макросе?

Я использую SDK для встроенного проекта. В этом исходном коде я нашел код, который, по крайней мере, мне показался странным. Во многих местах в SDK есть исходный код в таком формате: #define ATCI_IS_LOWER( alpha_char ) ( ( (alpha_char >= ATCI_char_a) && (alpha_char <= ATCI_char_z) )...

79
Разрешено ли компилятору оптимизировать локальную изменчивую переменную?

Разрешено ли компилятору оптимизировать это (согласно стандарту C ++ 17): int fn() { volatile int x = 0; return x; } к этому? int fn() { return 0; } Если да, то почему? Если нет, то почему? Вот некоторые размышления по этому поводу: текущие компиляторы компилируются fn()как локальная переменная,...

77
Вычитание упакованных 8-битных целых чисел в 64-битное целое на 1 параллельно, SWAR без аппаратного SIMD

Если у меня есть 64-разрядное целое число, которое я интерпретирую как массив упакованных 8-разрядных целых чисел с 8 элементами. Мне нужно вычесть константу 1из каждого упакованного целого числа при обработке переполнения без влияния одного элемента на результат другого элемента. У меня есть этот...

73
Могу ли я использовать NULL в качестве замены для значения 0?

Могу ли я использовать NULLуказатель в качестве замены для значения 0? Или что-то не так в этом? Как, например: int i = NULL; как замена для: int i = 0; В качестве эксперимента я скомпилировал следующий код: #include <stdio.h> int main(void) { int i = NULL; printf("%d",i); return 0; } Вывод:...

71
Использование std :: vector для просмотра сырой памяти

Я использую внешнюю библиотеку, которая в какой-то момент дает мне необработанный указатель на массив целых чисел и размер. Теперь я хотел бы использовать std::vectorдля доступа и изменения этих значений на месте, а не доступ к ним с помощью необработанных указателей. Вот примерный пример, который...

68
Многопоточная программа зависла в оптимизированном режиме, но нормально работает в -O0

Я написал простую многопоточную программу следующим образом: static bool finished = false; int func() { size_t i = 0; while (!finished) ++i; return i; } int main() { auto result=std::async(std::launch::async, func); std::this_thread::sleep_for(std::chrono::seconds(1)); finished=true;...

68
'New' и 'delete' устарели в C ++?

Я наткнулся на тест, который включал объявление массива с различными размерами. Первое, что пришло мне в голову, это то, что мне нужно будет использовать динамическое распределение с newкомандой, например так: while(T--) { int N; cin >> N; int *array = new int[N]; // Do something with 'array'...

61
Как работает этот шаблон кода для получения размера массива?

Интересно, почему этот вид кода может получить размер тестового массива? Я не знаком с грамматикой в ​​шаблоне. Может быть, кто-то может объяснить смысл кода ниже template<typename,size_t>. Кроме того, ссылка ссылка также предпочтительнее. #define dimof(array) (sizeof(DimofSizeHelper(array)))...

56
Переполнение со знаком в C ++ и неопределенное поведение (UB)

Мне интересно об использовании кода, как следующий int result = 0; int factor = 1; for (...) { result = ... factor *= 10; } return result; Если цикл повторяется с течением nвремени, то factorон умножается на 10точное nвремя. Тем не менее, factorиспользуется только после умножения на 10общее...