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

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

5
Які, якщо такі, компілятори C ++ роблять оптимізацію хвостової рекурсії?
Мені здається, що було б ідеально справно робити оптимізацію хвостової рекурсії як в C, так і в C ++, але під час налагодження я ніколи не бачу фреймового стека, який вказує на цю оптимізацію. Це добре, бо стек підказує мені, наскільки глибока рекурсія. Однак оптимізація також була б приємною. Чи …

18
Чи є гарною практикою NULL покажчик після його видалення?
Почну, кажу, використовуйте розумні вказівники, і вам ніколи про це не доведеться хвилюватися. Які проблеми з наведеним нижче кодом? Foo * p = new Foo; // (use p) delete p; p = NULL; Це було викликано відповіддю та коментарями до іншого питання. Один коментар Ніла Баттерворта приніс кілька результатів: Встановлення …

24
Як з'єднати кілька рядків C ++ в один рядок?
C # має синтаксичну функцію, за якою ви можете об'єднати багато типів даних у одному рядку. string s = new String(); s += "Hello world, " + myInt + niceToSeeYouString; s += someChar1 + interestingDecimal + someChar2; Що було б еквівалентом у C ++? Наскільки я бачу, вам доведеться робити …

11
Як генерувати випадкове число в C ++?
Я намагаюся скласти гру з кубиками, і мені потрібно мати в ній випадкові числа (для імітації сторін штампу. Я знаю, як зробити це між 1 і 6). Використання #include <cstdlib> #include <ctime> #include <iostream> using namespace std; int main() { srand((unsigned)time(0)); int i; i = (rand()%6)+1; cout << i << …
150 c++  random 

19
Чому типи завжди певного розміру не залежать від його значення?
Реалізація може відрізнятися між фактичними розмірами типів, але для більшості типів, таких як безпідписаний int та float, завжди є 4 байти. Але чому тип завжди займає певний об'єм пам'яті незалежно від його значення? Наприклад, якщо я створив таке ціле число зі значенням 255 int myInt = 255; Тоді myIntб мій …
149 c++ 

12
Чому x [0]! = X [0] [0]! = X [0] [0] [0]?
Я вивчаю трохи С ++ і борюся з покажчиками. Я розумію, що я можу мати 3 рівня покажчиків, оголосивши: int *(*x)[5]; так що *xце вказівник на масив з 5 елементів, на які вказують int. Також я це знаю x[0] = *(x+0);, x[1] = *(x+1)і так далі ... Отже, з огляду …
149 c++  c  arrays  pointers 

17
Який сенс указівників const?
Я кажу не про покажчики на значення const, а про самі const покажчики. Я вивчаю C та C ++ за межами самого елементарного матеріалу, і лише до сьогодні я зрозумів, що покажчики передаються за значенням функції, що має сенс. Це означає, що всередині функції я можу зробити скопійований покажчик вказувати …
149 c++  c  pointers  const 

2
Як працює `void_t`
Я спостерігав, як Уолтер Браун розмовляв на Cppcon14 про сучасне шаблонне програмування ( частина I , частина II ), де він представив свою void_tтехніку SFINAE. Приклад: Дано простий шаблон змінної, який оцінює, voidчи всі аргументи шаблону добре сформовані: template< class ... > using void_t = void; та наступна ознака, яка …
149 c++  templates  c++14  sfinae 

2
C ++ семантика `статичного const` проти` const`
Що стосується конкретного C ++, які семантичні відмінності, наприклад: static const int x = 0 ; і const int x = 0 ; як staticв якості зв’язку, так і специфікатора класу зберігання (тобто всередині і зовні функції).
149 c++ 

14
Чому масиви посилань незаконні?
Наступний код не компілюється. int a = 1, b = 2, c = 3; int& arr[] = {a,b,c,8}; Що говорить про це стандарт C ++? Я знаю, що міг оголосити клас, який містить посилання, а потім створити масив цього класу, як показано нижче. Але мені дуже хочеться знати, чому код …
149 c++  arrays  reference 

8
Перетворити програму Python у код C / C ++? [зачинено]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб він зосередив увагу на одній проблемі лише редагуючи цю публікацію . Закрито 3 роки тому . Удосконаліть це питання чи можливо перетворити програму Python на C / C ++? Мені …
149 c++  python  c  code-generation 

5
Чому вдосконалений оптимізатор GCC 6 порушує практичний код C ++?
У GCC 6 є нова функція оптимізатора : вона передбачає, що thisце не завжди є нульовим і оптимізується на основі цього. Поширення діапазону значень тепер передбачає, що цей покажчик функцій-членів C ++ не є нульовим. Це виключає загальні перевірки нульових покажчиків, але також порушує деякі невідповідні бази коду (наприклад, Qt-5, …

6
Чому б я std :: перемістити std :: shared_ptr?
Я переглядав вихідний код Clang і знайшов цей фрагмент: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Чому я хочу ?std::movestd::shared_ptr Чи є якась точка передачі права власності на спільний ресурс? Чому б я просто не зробив це замість цього? void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = Value; }

9
Витягування тексту OpenCV
Я намагаюся знайти обмежувальні поля тексту у зображенні, і зараз використовую такий підхід: // calculate the local variances of the grayscale image Mat t_mean, t_mean_2; Mat grayF; outImg_gray.convertTo(grayF, CV_32F); int winSize = 35; blur(grayF, t_mean, cv::Size(winSize,winSize)); blur(grayF.mul(grayF), t_mean_2, cv::Size(winSize,winSize)); Mat varMat = t_mean_2 - t_mean.mul(t_mean); varMat.convertTo(varMat, CV_8U); // threshold the …

3
Статична ініціалізація члена в шаблоні класу
Я хотів би зробити це: template <typename T> struct S { ... static double something_relevant = 1.5; }; але я не можу, оскільки something_relevantне є цілісним типом. Це не залежить від того T, але існуючий код залежить від того, чи є статичним членом S. Оскільки S є шаблоном, я не …
148 c++  templates  static 

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