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

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

10
Заміна 32-розрядного лічильника циклу на 64-бітний вводить шалені відхилення продуктивності на _mm_popcnt_u64 на процесорах Intel
Я шукав найшвидший шлях до popcountвеликих масивів даних. У мене виник дуже дивний ефект: зміна змінної циклу з unsignedна uint64_tзменшення продуктивності на моєму ПК. Орієнтир #include <iostream> #include <chrono> #include <x86intrin.h> int main(int argc, char* argv[]) { using namespace std; if (argc != 2) { cerr << "usage: array_size in …

11
Що таке rvalues, lvalues, xvalues, glvalues ​​та prvalues?
У C ++ 03 вираз є або rvalue, або lvalue . У C ++ 11 вираз може бути: оцінювати значення xvalue glvalue prvalue Дві категорії стали п’ятьма категоріями. Що це за нові категорії виразів? Як ці нові категорії співвідносяться з існуючими категоріями rvalue та lvalue? Чи відповідають категорії rvalue та …
1356 c++  expression  c++-faq  c++11 

18
Яка різниця між const int *, const int * const і int const *?
Я завжди безлад , як використовувати const int*, const int * constі int const *правильно. Чи існує набір правил, що визначають, що можна, а що не можна робити? Я хочу знати всі дії та всі недоліки щодо завдань, переходу до функцій тощо.
1355 c++  c  pointers  int  const 

25
Навіщо нам потрібні віртуальні функції в C ++?
Я вивчаю C ++ і я просто вступаю у віртуальні функції. З того, що я прочитав (у книзі та в Інтернеті), віртуальні функції - це функції базового класу, які ви можете перекрити у похідних класах. Але раніше в книзі, коли я дізнавався про базове успадкування, я зміг змінити базові функції …

6
Де і чому я повинен розміщувати ключові слова "шаблон" та "ім'я типу"?
У шаблонах, де і чому я повинен ставити typenameі templateзалежні імена? Які саме залежні імена все-таки є? У мене є такий код: template <typename T, typename Tail> // Tail will be a UnionNode too. struct UnionNode : public Tail { // ... template<typename U> struct inUnion { // Q: where …

20
Чи можна отримати доступ до пам'яті локальної змінної за її межами?
У мене є такий код. #include <iostream> int * foo() { int a = 5; return &a; } int main() { int* p = foo(); std::cout << *p; *p = 8; std::cout << *p; } А код просто працює без винятку з виконання! Вихід був 58 Як це може бути? …


1
Які нові функції в C ++ 17?
Заблокований . Це запитання та його відповіді заблоковано, оскільки це питання поза темою, але має історичне значення. Наразі не приймає нових відповідей чи взаємодій. Тепер функція C ++ 17 завершена, тому навряд чи відбудеться великих змін. Сотні пропозицій було висунуто для С ++ 17. Які з цих функцій були додані …
1007 c++  standards  c++-faq  c++17 

5
Не визначена поведінка та пункти послідовності
Що таке "точки послідовності"? Яке відношення між невизначеною поведінкою та точками послідовності? Я часто вживаю смішні та заплутані вирази на кшталт a[++i] = i;, щоб почувати себе краще. Чому я повинен припинити їх використання? Якщо ви прочитали це, обов’язково перегляньте подальше запитання Невизначена поведінка та перезавантажені пункти послідовності . (Примітка. …



23
Чому змінні не можуть бути оголошені в операторі перемикача?
Я завжди цікавився цим питанням - чому ви не можете оголосити змінні після мітки справи в операторі перемикача? У C ++ ви можете декларувати змінні в будь-якому місці (і оголосити їх близько до першого використання, очевидно, це добре), але наступне все одно не буде працювати: switch (val) { case VAL: …

5
Які правила використання підкреслення в ідентифікаторі C ++?
У C ++ прийнято називати член-змінними з певним префіксом для позначення факту, що вони є змінними-членами, а не локальними змінними чи параметрами. Якщо ви прийшли з фону MFC, ви, ймовірно, будете використовувати m_foo. Я також myFooчасто бував. Здається, C # (або, можливо, просто .NET) рекомендує використовувати лише підкреслення, як у …

6
Яка різниця між "typedef" і "use" в C ++ 11?
Я знаю, що в C ++ 11 тепер ми можемо використовувати usingдля написання псевдонімів типу, наприклад typedefs: typedef int MyInt; З того, що я розумію, рівнозначне: using MyInt = int; І цей новий синтаксис з'явився із спроби створити спосіб " template typedef": template< class T > using MyType = AnotherType< …


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