Запитання з тегом «c++»

C ++ - мова програмування загального призначення. Спочатку він був розроблений як розширення до C і має подібний синтаксис, але зараз це зовсім інша мова. Використовуйте цей тег для запитань про код (який потрібно) зібрати за допомогою компілятора C ++. Використовуйте тег, що стосується версії, для питань, пов’язаних із конкретною стандартною редакцією [C ++ 11], [C ++ 14], [C ++ 17] або [C ++ 20] тощо.

15
Використання простору імен std
Здається, існують різні погляди на використання "використання" щодо простору імен std. Одні кажуть, що використовують " using namespace std", інші кажуть, що не мають, а скоріше префіксу std-функцій, які слід використовувати " std::", а інші кажуть, що використовують щось подібне: using std::string; using std::cout; using std::cin; using std::endl; using std::vector; …
110 c++  namespaces 

5
Що саме означають “IB” та “UB”?
Я бачив терміни "IB" та "UB", які вживаються декілька разів, особливо в контексті C ++. Я спробував їх погуглити, але, мабуть, ці двобуквені комбінації бачать багато користі. : P Отже, я запитую вас ... що вони означають, коли кажуть, що вони погані?

12
const char * const порівняно const char *?
Я переглядаю кілька прикладних програм для ознайомлення з C ++, і я натрапив на наступне питання. По-перше, ось приклад коду: void print_string(const char * the_string) { cout << the_string << endl; } int main () { print_string("What's up?"); } У наведеному вище коді може бути замість цього параметр print_string const …
110 c++  c 

4
C / C ++ NaN-константа (буквально)?
Чи можливо це призначити NaNa doubleабо floatC / C ++? Як і в JavaScript ви: a = NaN. Тож пізніше ви можете перевірити, чи є змінною число чи ні.
110 c++  nan 

9
Чому поділ на два int не дає потрібного значення, якщо його присвоїти подвійному?
Як це зробити в наступному фрагменті int a = 7; int b = 3; double c = 0; c = a / b; cв кінцевому підсумку має значення 2, а не 2,3333, як можна було б очікувати. Якщо aі bє парними, відповідь перетворюється на 2.333. Але напевно, тому що c …

8
Qt: не вдалося знайти -lGL помилку
Я щойно перевстановив QtCreator, створив новий проект ( додаток Qt ) і отримав це після компіляції: /usr/bin/ld: **cannot find -lGL** collect2: error: ld returned 1 exit status make: *** [untitled1] Error 1 18:07:41: The process "/usr/bin/make" exited with code 2. Error while building/deploying project untitled1 (kit: Desktop Qt 5.1.0 GCC …

18
Чи буде струн обчислюватися в кілька разів, якщо його використовувати в умовах циклу?
Я не впевнений, чи може наступний код викликати надмірні обчислення, чи це специфічний для компілятора? for (int i = 0; i < strlen(ss); ++i) { // blabla } Чи strlen()буде обчислюватися кожен раз, коли iзбільшуватиметься?
109 c++  c  gcc  optimization  strlen 

4
Яке найшвидше ціле ділення, що підтримує ділення на нуль, незалежно від результату?
Підсумок: Я шукаю найшвидший спосіб розрахунку (int) x / (int) y не отримуючи винятку для y==0. Натомість я просто хочу довільний результат. Фон: При кодуванні алгоритмів обробки зображень мені часто потрібно ділити на (накопичене) значення альфа. Найпростіший варіант - звичайний код C з цілою арифметикою. Моя проблема полягає в тому, …

7
Як працюють винятки (за кадром) в c ++
Я постійно бачу, як люди кажуть, що винятки повільні, але я ніколи не бачу доказів. Тож, замість того, щоб запитати, чи є вони, я запитаю, як працюють виключення поза кадром, щоб я міг приймати рішення, коли їх використовувати та чи повільні вони. Як я знаю, винятки - це те саме, …


17
Як я можу створити дерево каталогів у C ++ / Linux?
Я хочу простий спосіб створення декількох каталогів на C ++ / Linux. Наприклад, я хочу зберегти файл lola.file у каталозі: /tmp/a/b/c але якщо каталогів немає, я хочу їх створити автоматично. Робочий приклад був би ідеальним.
109 c++  linux  directory 

6
Як зв’язати програму C ++ з Boost за допомогою CMake
Як повинен виглядати мій файл CMake для з'єднання моєї програми з бібліотекою Boost під Ubuntu? Помилки, показані під час запуску make: main.cpp:(.text+0x3b): undefined reference to `boost::program_options::options_description::m_default_line_length' Головний файл дійсно простий: #include <boost/program_options/options_description.hpp> #include <boost/program_options/option.hpp> using namespace std; #include <iostream> namespace po = boost::program_options; int main(int argc, char** argv) { po::options_description …
109 c++  boost  cmake 

12
Як реалізуються віртуальні функції та vtable?
Всі ми знаємо, які віртуальні функції є в C ++, але як вони реалізуються на глибокому рівні? Чи можна змінити Vtable або навіть безпосередньо отримати доступ під час його виконання? Чи існує vtable для всіх класів або лише для тих, хто має хоча б одну віртуальну функцію? Чи мають абстрактні …

7
Визначення статичних const цілих членів у визначенні класу
Я розумію, що C ++ дозволяє визначати статичні члени const всередині класу, якщо це цілий тип. Чому, таким чином, наступний код дає мені помилку лінкера? #include <algorithm> #include <iostream> class test { public: static const int N = 10; }; int main() { std::cout << test::N << "\n"; std::min(9, test::N); …

5
Чому 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 Що не так з виразом справа? Спробував це, і він працює чудово.
109 c++  random  std 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.