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

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

9
Чи безпечно push_back елемент з того самого вектора?
vector<int> v; v.push_back(1); v.push_back(v[0]); Якщо другий push_back викликає перерозподіл, посилання на перше ціле число у векторі більше не буде дійсним. Так це не безпечно? vector<int> v; v.push_back(1); v.reserve(v.size() + 1); v.push_back(v[0]); Це робить його безпечним?

7
Різниця між типами string і char [] в C ++
Я знаю трохи C, і зараз я дивлюсь на C ++. Я звик до масивів char для роботи з рядками C, але переглядаючи код C ++, я бачу, що є приклади, що використовують як тип рядка, так і масиви char: #include <iostream> #include <string> using namespace std; int main () …
126 c++  string  types 

12
Використання scanf () у програмах C ++ швидше, ніж використання cin?
Я не знаю, чи це правда, але коли я читав FAQ на одному із проблемних сайтів, я знайшов щось, що викликає мою увагу: Перевірте способи введення / виводу. У C ++ використання cin та cout занадто повільне. Використовуйте ці, і ви гарантуєте, що не зможете вирішити жодну проблему з пристойним …
126 c++  c  performance  io 




4
Qt: Як мені обробляти події, коли користувач натискає кнопку "X" (закрити)?
Я розробляю додаток за допомогою Qt. Я не знаю, який слот відповідає події "користувач натискає кнопку" X "(закрити) рамки вікна", тобто цю кнопку: Якщо для цього немає слота, хтось може запропонувати мені якийсь інший метод, за допомогою якого я можу запустити функцію після того, як користувач натисне цю кнопку закриття.
126 c++  qt 

6
Перемістіть оператор призначення та `if (this! = & Rhs)`
В операторі присвоєння класу зазвичай потрібно перевірити, чи призначений об'єкт є об'єктом, що викликає, щоб ви не накручували речі: Class& Class::operator=(const Class& rhs) { if (this != &rhs) { // do the assignment } return *this; } Вам потрібна те ж саме для оператора призначення переміщення? Чи буває колись ситуація, …

8
Поясніть обхід дерева дерев Морріса без використання стеків та рекурсії
Чи може хтось допомогти мені зрозуміти наступний алгоритм обходу дерев замовлення Морріса без використання стеків чи рекурсії? Я намагався зрозуміти, як це працює, але це просто втече від мене. 1. Initialize current as root 2. While current is not NULL If current does not have left child a. Print current’s …

15
Віртуальні функції та продуктивність - C ++
У дизайні класу я широко використовую абстрактні класи та віртуальні функції. У мене було відчуття, що віртуальні функції впливають на продуктивність. Це правда? Але я вважаю, що ця різниця в роботі не помітна і виглядає так, що я роблю передчасну оптимізацію. Правильно?

29
Як виявити / уникнути витоку пам'яті у вашому (Некерованому) коді? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …
125 c++  c  memory-leaks 

15
Чи варто використовувати #define, enum чи const?
У проекті C ++, над яким я працюю, у мене є значення типу прапора, яке може мати чотири значення. Ці чотири прапори можна комбінувати. Прапори описують записи в базі даних і можуть бути: новий запис видалений запис модифікований запис існуючий запис Тепер для кожного запису я хочу зберегти цей атрибут, …


2
Зйомка та параметр лямбда з такою ж назвою - хто відтіняє іншого? (кланг проти gcc)
auto foo = "You're using g++!"; auto compiler_detector = [foo](auto foo) { std::puts(foo); }; compiler_detector("You're using clang++!"); clang ++ 3.6.0 та новіші роздруківки "Ви використовуєте clang ++!" і попередити про те, що захоплення foo не використовується. g ++ 4.9.0 та новіші роздруківки "Ви використовуєте g ++!" і попередити про не …

25
робити {…} поки (помилково)
Я дивився на якийсь код окремої людини і помітив, що він, здається, має шаблон у своїх функціях: <return-type> function(<params>) { <initialization> do { <main code for function> } while(false); <tidy-up & return> } Це непогано , більш своєрідно (власне код досить акуратний і не дивно). Це не те, що я …
125 c++ 

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