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

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

12
С # справді повільніший, ніж скажімо C ++?
Я вже давно задаюся цим питанням. Звичайно, у C # є речі, які не оптимізовані для швидкості, тому використання цих об'єктів або налаштування мови (наприклад, LinQ) може спричинити повільніший код. Але якщо ви не використовуєте жодного з цих налаштувань, а просто порівняєте однакові фрагменти коду в C # та C …
78 c#  c++  performance 

1
Що означає clang's -Wweak-vtables?
Я в основному не розумію кланг -Wweak-vtables. Ось те, що я спостерігав до цього часу: Випадок перший: (викликає попередження) class A { public: virtual ~A(){} }; class B : public A { public: virtual ~B(){} }; int main(){} Випадок другий: (не викликає попередження) class A { public: virtual ~A(){} }; …
78 c++  clang 

10
C ++ Отримати ім'я типу в шаблоні
Я пишу кілька класів шаблонів для синтаксичного аналізу деяких текстових файлів даних, і, як такий, переважно більшість помилок синтаксичного аналізу будуть пов'язані з помилками у файлі даних, які здебільшого не написані програмістами, і тому вони потребують гарне повідомлення про те, чому програму не вдалося завантажити, наприклад щось на зразок: Помилка …

4
map <int, int> значення за замовчуванням
std::map&lt;int,int&gt; mapy; ++mapy[5]; Чи можна припустити, що mapy[5]завжди буде 1? Я маю на увазі, mapy[5]завжди буде отримувати значення за замовчуванням 0 перед '++', навіть якщо це явно не оголошено, як у моєму коді?

7
Поділ з плаваючою точкою проти множення з плаваючою точкою
Чи є якісь (не мікрооптимізаційні) підвищення продуктивності за допомогою кодування float f1 = 200f / 2 у порівнянні з float f2 = 200f * 0.5 Мій професор сказав мені кілька років тому, що поділи з плаваючою точкою повільніші, ніж множення з плаваючою точкою, не пояснюючи причини. Чи відповідає це твердження …


8
memset () або ініціалізація значення для обнулення структури?
У програмуванні API Win32 типово використовувати C structs з декількома полями. Зазвичай лише пара з них мають значущі значення, а всі інші повинні бути обнулені. Цього можна досягти одним із двох способів: STRUCT theStruct; memset( &amp;theStruct, 0, sizeof( STRUCT ) ); або STRUCT theStruct = {}; Другий варіант виглядає чистішим …

16
Як конвертувати CString та std :: string std :: wstring один до одного?
CStringє досить зручним, хоча std::stringє більш сумісним із контейнером STL. Я використовую hash_map. Однак hash_mapне підтримує CStrings як клавіші, тому я хочу перетворити CStringa на std::string. Написання CStringхеш-функції займає багато часу. CString -----&gt; std::string Як я можу це зробити? std::string -----&gt; CString: inline CString toCString(std::string const&amp; str) { return CString(str.c_str()); …
78 c++  mfc  cstring  stdstring 

7
Як файл заголовка C ++ може включати реалізацію?
Гаразд, якимось чином не експерт по C / C ++, але я думав, що сенс файлу заголовка - декларувати функції, тоді файл C / CPP повинен визначати реалізацію. Однак, переглядаючи сьогодні деякий код C ++, я знайшов це у файлі заголовка класу ... public: UInt32 GetNumberChannels() const { return _numberChannels; …
78 c++  header-files 

7
Що таке функція c_str у c ++
Я щойно почав читати C ++ і виявив, що c ++ має розширені функції для маніпулювання рядками, яких у C немає. Я читаю цю функцію і натрапив, c_str()і з того, що я розумію, це c_strперетворення рядка, який може закінчуватися нулем, а може бути, не в рядок, закінчений нулем. Чи правда? …
78 c++  c  string 

3
Як ефективно отримати `string_view` для підрядка` std :: string`
Використовуючи http://en.cppreference.com/w/cpp/string/basic_string_view як посилання, я не бачу способу зробити це більш елегантно: std::string s = "hello world!"; std::string_view v = s; v = v.substr(6, 5); // "world" Гірше того, що наївний підхід є підводним каменем і залишає vзвисаюче посилання на тимчасове: std::string s = "hello world!"; std::string_view v(s.substr(6, 5)); // …
78 c++  view  c++17  stdstring 

8
Як обробляти збій у конструкторі в C ++?
Я хочу відкрити файл у конструкторі класів. Не виключено, що отвір міг провалитися, тоді будівництво об’єкта не могло бути завершено. Як впоратися з цією невдачею? Викинути виняток? Якщо це можливо, як це обробляти в конструкторі, що не кидає?
78 c++ 

8
Віднімання упакованих 8-бітових цілих чисел у 64-бітовому цілому на 1 паралельно, SWAR без апаратного SIMD
Якщо у мене 64-бітове ціле число, яке я інтерпретую як масив упакованих 8-бітових цілих чисел з 8 елементами. Мені потрібно відняти константу 1з кожного упакованого цілого числа під час обробки переповнення без результату, коли один елемент впливає на результат іншого елемента. На даний момент у мене є цей код, і …
77 c++  c  bit-manipulation  simd  swar 

15
Коли цілочисельний <-> покажчик фактично правильний?
Поширений фольклор каже, що: Система типів існує з певної причини. Цілі числа та покажчики є різними типами, в більшості випадків перекидання між ними є неправомірною практикою, може вказувати на помилку проектування, і її слід уникати. Навіть коли виконується такий привід, не слід робити припущення щодо розміру цілих чи покажчиків ( …
77 c++  c  pointers  casting 

5
Як зробити загальні обчислення за неоднорідними пакетами аргументів варіадичної функції шаблону?
ПРОМІСЛЯ: Трохи погравши з варіативними шаблонами, я зрозумів, що досягнення всього, що трохи виходить за межі тривіальних завдань метапрограмування, незабаром стає досить громіздким. Зокрема, я виявив , бажаючи таким чином , щоб виконувати загальні операції над аргументом пакета , такі як ітерації , розкол , петлі в std::for_each-like моди, і …

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