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

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


1
Що станеться, якщо для перерахунку класу static_cast недійсне значення для перерахунку класу?
Розглянемо цей код C ++ 11: enum class Color : char { red = 0x1, yellow = 0x2 } // ... char *data = ReadFile(); Color color = static_cast<Color>(data[0]); Припустимо, що даних [0] насправді 100. Який колір встановлюється відповідно до стандарту? Зокрема, якщо я пізніше switch (color) { // ... …
146 c++  c++11 


8
uint8_t не можна друкувати cout
У мене є дивна проблема щодо роботи з цілими числами в C ++. Я написав просту програму, яка встановлює значення змінної, а потім друкує її, але вона працює не так, як очікувалося. Моя програма має лише два рядки коду: uint8_t aa = 5; cout << "value is " << aa …
146 c++ 

5
Що означає йота std :: iota?
Я припускаю, що "я" збільшується, а "а" призначається, але я не міг з'ясувати або знайти відповідь. Крім того, він дуже схожий на нестандартний, itoaякий я вважаю заплутаним.

4
Значення ios_base :: sync_with_stdio (помилково); cin.tie (NULL);
Яке значення в тому числі ios_base::sync_with_stdio(false); cin.tie(NULL); в програмах C ++? У моїх тестах це прискорює час виконання, але чи є тестовий випадок, про який я повинен турбуватися, включивши це? Чи завжди два твердження повинні бути разом, або перше достатнє, тобто ігнорування cin.tie(NULL)? Також, чи допустимо одночасне використання команд C …
146 c++  c 

3
Яке призначення одного знака фунта / хеша (#) на його власному рядку у препроцесорі C / C ++?
Я переглядав вихідний код бібліотек Boost , і помітив, що часто є поодинокі знаки фунта без доданих до них директив препроцесора. Я прочитав посібник із посібника та специфікацій GCC-препроцесора, і нічого не можу знайти. (1) #ifndef BOOST_CONFIG_HPP (2) # include <boost/config.hpp> (3) #endif (4) # (5) #if defined(BOOST_HAS_PRAGMA_ONCE) (6) # …
145 c++  c  boost  c-preprocessor 

5
Чому (% 256) відрізняється від (a & 0xFF)?
Я завжди припускав, що, роблячи (a % 256)оптимізатор, природно, буде використовувати ефективну побітну операцію, як ніби я писав (a & 0xFF). Під час тестування на компіляторі explorer gcc-6.2 (-O3): // Type your code here, or load an example. int mod(int num) { return num % 256; } mod(int): mov edx, …
145 c++  optimization 

4
Використання змінної члена у списку захоплення лямбда всередині функції члена
Наступний код компілюється з gcc 4.5.1, але не з VS2010 SP1: #include <iostream> #include <vector> #include <map> #include <utility> #include <set> #include <algorithm> using namespace std; class puzzle { vector<vector<int>> grid; map<int,set<int>> groups; public: int member_function(); }; int puzzle::member_function() { int i; for_each(groups.cbegin(),groups.cend(),[grid,&i](pair<int,set<int>> group){ i++; cout<<i<<endl; }); } int main() …

6
Чи може клас перерахунку C ++ мати методи?
У мене клас enum з двома значеннями, і я хочу створити метод, який отримує значення і повертає інше. Я також хочу підтримувати безпеку типу (тому я використовую enum class замість enums). http://www.cplusplus.com/doc/tutorial/other_data_types/ нічого не згадує про методи. Однак у мене склалося враження, що будь-який тип класу може мати методи.
145 c++  methods  enums 


7
Автоматичне ключове слово C ++. Чому це магія?
З усього матеріалу, який я використовував для вивчення C ++, autoзавжди був дивний специфікатор тривалості зберігання, який не виконував ніяких цілей. Але зовсім недавно я зіткнувся з кодом, який використовував його як саме ім'я типу. З цікавості я спробував це, і він передбачає тип того, що мені трапляється, привласнити його! …
145 c++  types  c++11  auto 

11
Як видалити елемент з вектору stl з певним значенням?
Я переглянув документацію API для вектору stl і помітив, що в векторному класі не існує методу, який дозволяв би видалити елемент із певним значенням. Це здається звичайною операцією, і здається дивним, що для цього немає побудованого способу.
145 c++  stl 

12
Чому хтось використовуватиме набір замість unororder_set?
Представляємо C ++ 0x, unordered_setякий доступний у boostбагатьох інших місцях. Я розумію, що unordered_setце хеш-таблиця зі O(1)складністю пошуку. З іншого боку, setце не що інше, як дерево зі log(n)складністю пошуку. Чому б на землі хтось використовував setзамість цього unordered_set? тобто чи є вже потреба set?

6
Const до або const after?
Для початку ви, мабуть, знаєте, що constїх можна використовувати для того, щоб зробити дані об'єкта або покажчик не змінювати, або і те і інше. const Object* obj; // can't change data Object* const obj; // can't change pointer const Object* const obj; // can't change data or pointer Однак ви …
145 c++  c  syntax  const 

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