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

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

14
Чи слід вивчати C, перш ніж вивчати C ++? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …
116 c++  c 

6
Приклад boost shared_mutex (кілька читання / одна запис)?
У мене є багатопотокова програма, якій доводиться часто читати деякі дані, а періодично ці дані оновлюються. Зараз mutex зберігає доступ до цих даних безпечним, але це дорого, тому що я хотів би, щоб декілька потоків могли читати одночасно, і блокувати їх лише тоді, коли потрібно оновлення (оновлення потоку може чекати, …

30
Практики кодування, які дозволяють компілятору / оптимізатору зробити більш швидку програму
Багато років тому компілятори C не були особливо розумними. Як обхід K&R винайшов ключове слово регістр , щоб натякнути компілятору, що, можливо, було б хорошою ідеєю зберегти цю змінну у внутрішньому реєстрі. Вони також змусили третинного оператора допомогти генерувати кращий код. Ішов час, укладачі дозрівали. Вони стали дуже розумними в …

8
Які різниці між C ++ 03 та C ++ 11 можна виявити під час виконання?
Можна записати функцію, яка при компіляції з компілятором C поверне 0, а при компіляції з компілятором C ++ поверне 1 (тривіальне сулюювання з #ifdef __cplusplusне цікаво). Наприклад: int isCPP() { return sizeof(char) == sizeof 'c'; } Звичайно, вищезазначене буде працювати лише в тому випадку, якщо sizeof (char)воно не те самеsizeof …

2
Програма складається по-різному у трьох основних компіляторах C ++. Який з них правильний?
Як цікаве спостереження (хоча це не має великого практичного значення) до мого попереднього запитання: Чому C ++ дозволяє нам оточувати ім'я змінної в дужках при оголошенні змінної? Я з’ясував, що поєднання декларації в круглих дужках із введеною функцією імені класу може призвести до дивовижних результатів щодо поведінки компілятора. Погляньте на …

12
const char * конкатенація
Мені потрібно об'єднати два символи const, як-от такі: const char *one = "Hello "; const char *two = "World"; Як я можу робити це? Мені передаються ці дані char*з сторонньої бібліотеки з інтерфейсом C, тому я не можу просто використовувати її std::string.

12
Де C не є підмножиною C ++? [зачинено]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб він зосередив увагу на одній проблемі лише редагуючи цю публікацію . Закрито 6 років тому . Удосконаліть це питання Я читав у багатьох книгах, що C - це підмножина C …
116 c++  c 


2
Хороший приклад для boost :: алгоритм :: join
Нещодавно я хотів використовувати boost :: алгоритм :: приєднатися, але я не зміг знайти жодних прикладів використання, і не хотів витрачати багато часу на вивчення бібліотеки Boost Range, щоб використовувати цю функцію. Хтось може надати хороший приклад того, як використовувати приєднання на контейнері струн? Дякую.
116 c++  string  boost  join 

5
за допомогою шаблону Extern (C ++ 11)
Рисунок 1: Шаблони функцій TemplHeader.h template<typename T> void f(); TemplCpp.cpp template<typename T> void f(){ //... } //explicit instantation template void f<T>(); Main.cpp #include "TemplHeader.h" extern template void f<T>(); //is this correct? int main() { f<char>(); return 0; } Це правильний спосіб використання extern templateчи я використовую це ключове слово лише …
116 c++  templates  c++11  extern 

5
Помилка сегментації на великих розмірах масиву
Наступний код дає мені помилку сегментації під час роботи на 2Gb машині, але працює на 4 Гб. int main() { int c[1000000]; cout << "done\n"; return 0; } Розмір масиву - всього 4 Мб. Чи є обмеження на розмір масиву, який можна використовувати в c ++?

2
Чи можу я компілювати всі .cpp-файли у src / to .o в obj /, а потім посилання на бінарні в ./?
Мій каталог проектів виглядає приблизно так: /project Makefile main /src main.cpp foo.cpp foo.h bar.cpp bar.h /obj main.o foo.o bar.o Що я хотів би зробити з мого файлу, це скласти всі .cppфайли в /srcпапці до .oфайлів у /objпапці, а потім пов'язати всі .oфайли у /objвихідний бінарний файл у папці верхнього рівня …

11
Чому в стандартних бібліотеках C ++ немає `int pow (int base, int exponent)"?
Я відчуваю, що я просто не можу його знайти. Чи є якась причина, що powфункція C ++ не реалізує функцію "живлення" ні для чого, крім floats і doubles? Я знаю, що реалізація є тривіальною, я просто відчуваю, що я виконую роботу, яка повинна бути в стандартній бібліотеці. Надійна функція живлення …

9
'const int' vs. 'int const' як параметри функції в C ++ та C
Поміркуйте: int testfunc1 (const int a) { return a; } int testfunc2 (int const a) { return a; } Ці дві функції однакові у кожному аспекті чи є різниця? Мене цікавить відповідь на мові С, але якщо в мові С ++ є щось цікаве, я також хотів би це знати.
116 c++  c  const 

5
Що таке файл .h.gch?
Нещодавно у мене був класний проект, де мені довелося скласти програму з G ++. Я використовував makefile, і він чомусь залишав за собою файл .h.gch. Іноді це не впливало на компіляцію, але так часто це призвело б до того, що компілятор видав помилку для проблеми, яка була виправлена ​​або не …
116 c++  g++ 

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