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

109
Определение целочисленных членов static const в определении класса

Я понимаю, что C ++ позволяет определять статические константные члены внутри класса, если это целочисленный тип. Почему же тогда следующий код выдает ошибку компоновщика? #include <algorithm> #include <iostream> class test { public: static const int N = 10; }; int main() { std::cout...

109
Как связать программу C ++ с Boost с помощью CMake

Как должен выглядеть мой файл CMake для связывания моей программы с библиотекой Boost в Ubuntu? Ошибки, отображаемые во время работы make: main.cpp:(.text+0x3b): undefined reference to `boost::program_options::options_description::m_default_line_length' Главный файл действительно прост: #include...

109
Другой результат с плавающей запятой при включенной оптимизации - ошибка компилятора?

Приведенный ниже код работает в Visual Studio 2008 с оптимизацией и без нее. Но работает только на g ++ без оптимизации (O0). #include <cstdlib> #include <iostream> #include <cmath> double round(double v, double digit) { double pow = std::pow(10.0, digit); double t = v * pow;...

109
Какое самое быстрое целочисленное деление поддерживает деление на ноль независимо от результата?

Резюме: Я ищу самый быстрый способ расчета (int) x / (int) y без исключения y==0. Вместо этого я просто хочу произвольный результат. Задний план: При кодировании алгоритмов обработки изображений мне часто приходится делить на (накопленное) альфа-значение. Самый простой вариант - это простой код на...

109
Почему std :: getline () пропускает ввод после форматированного извлечения?

У меня есть следующий фрагмент кода, который запрашивает у пользователя свое имя и статус: #include <iostream> #include <string> int main() { std::string name; std::string state; if (std::cin >> name && std::getline(std::cin, state)) { std::cout << "Your name is "...

109
Почему rand ()% 6 смещен?

Читая, как использовать std :: rand, я нашел этот код на cppreference.com int x = 7; while(x > 6) x = 1 + std::rand()/((RAND_MAX + 1u)/6); // Note: 1+rand()%6 is biased Что не так с выражением справа? Пробовал и работает...

108
Эффективная конкатенация строк в C ++

Я слышал, как несколько людей выражали беспокойство по поводу оператора "+" в std :: string и различных обходных путей для ускорения конкатенации. Действительно ли это необходимо? Если да, то как лучше всего объединить строки в C...

108
'size_t' против 'container :: size_type'

Есть ли разница между size_tи container::size_type? То, что я понимаю, size_tявляется более общим и может использоваться для любых size_types. Но container::size_typeоптимизирован ли он для конкретных типов...

108
Как BLAS обеспечивает такую ​​исключительную производительность?

Из любопытства я решил сравнить свою функцию умножения матриц с реализацией BLAS ... Результат меня, мягко говоря, удивил: Заказная реализация, 10 попыток умножения матриц 1000x1000: Took: 15.76542 seconds. Внедрение BLAS, 10 попыток умножения матриц 1000x1000: Took: 1.32432 seconds. Здесь...

108
Как инициализировать частную статическую константную карту в C ++?

Мне нужен только словарь или ассоциативный массив string=> int. Для этого случая существует карта типов C ++. Но мне нужна только одна карта для всех экземпляров (-> static), и эту карту нельзя изменить (-> const); Я нашел этот способ с помощью библиотеки boost std::map<int, char>...

108
C / C ++ Struct против класса

После завершения моего класса C ++ мне показалось, что структуры / классы практически идентичны, за исключением нескольких незначительных отличий. Я никогда раньше не программировал на C; но я знаю, что у него есть структуры. В C можно ли наследовать другие структуры и установить модификатор public...

108
Ошибка компиляции GCC с кодом> 2 ГБ

У меня огромное количество функций на общую сумму около 2,8 ГБ объектного кода (к сожалению, нет другого пути, научные вычисления ...) Когда я пытаюсь связать их, я получаю (ожидаемые) relocation truncated to fit: R_X86_64_32Sошибки, которые я надеялся обойти, указав флаг компилятора...

108
Правильный способ определения методов пространства имен C ++ в файле .cpp

Вероятно, дубликат, но его нелегко найти ... Учитывая заголовок вроде: namespace ns1 { class MyClass { void method(); }; } Я видел method()несколько способов определения в файле .cpp: Версия 1: namespace ns1 { void MyClass::method() { ... } } Версия 2: using namespace ns1; void MyClass::method() {...

108
Как правильно передавать параметры?

Я новичок в C ++, но не новичок в программировании. Я пытаюсь изучить C ++ (c ++ 11), и мне непонятно самое главное: передача параметров. Я рассмотрел эти простые примеры: Класс, в котором все члены примитивные типы: CreditCard(std::string number, int expMonth, int expYear,int pin):number(number),...