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

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

5
C ++ карта відкидає класифікатори доступу (const)
Наступний код каже , що проходячи карту , як constв operator[]відбіркові метод відкидає: #include <iostream> #include <map> #include <string> using namespace std; class MapWrapper { public: const int &get_value(const int &key) const { return _map[key]; } private: map<int, int> _map; }; int main() { MapWrapper mw; cout << mw.get_value(42) << …
113 c++  stl  const  maps 

8
Якщо ми використовуємо заголовки C у C ++, чи слід використовувати функції з std :: чи глобального простору імен?
C дещо, не зовсім, підмножина C ++. Таким чином, ми можемо використовувати більшість функцій / заголовків C у C ++, трохи змінивши ім'я ( stdio.hдо cstdio, stdlib.hдо cstdlib). Моє запитання насправді якесь смислове. У коді C ++ ( з використанням новітньої версії GCC компілятора), я можу зателефонувати printf("Hello world!");і std::printf("Hello …
113 c++  language-lawyer  std 

10
Створення UML з коду C ++? [зачинено]
Зачинено. Це питання не відповідає вказівкам щодо переповнення стека . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для переповнення стека. Закрито 2 роки тому . Удосконаліть це питання Чи є інструмент, який може аналізувати файли C ++ в рамках проекту та генерувати з …
113 c++  uml 

5
кинути новий std :: виняток проти кинути std :: виключення
дивлячись на якийсь код, на який я натрапив: throw /*-->*/new std::exception ("//... і я завжди думав, що вам це не потрібно / вам не слід newтут користуватися. Який правильний спосіб, чи обидва в порядку, якщо так, чи є різниця? До речі, з того, що я бачу під час "схоплення" за …
113 c++  exception 

14
Std :: карта, яка відстежує порядок вставки?
В даний час у мене є std::map<std::string,int>те, що зберігає ціле значення до унікального ідентифікатора рядка, і я шукаю цей рядок. Він робить переважно те, що я хочу, за винятком того, що він не відстежує порядок вставки. Отже, коли я повторюю карту для друку значень, вони сортуються відповідно до рядка; але …

6
Чи існує автоматичний підхід до типу Java?
Чи існує autoзмінний тип на Java, як у вас в C ++? Приклад: for ( auto var : object_array) std::cout << var << std::endl; for( auto var : object_array) var.do_something_that_only_this_particular_obj_can_do(); Я знаю, що в Java є розширений цикл, але чи є авто? Якщо ні, чи є хак для цього? Я …
113 java  c++  auto 


6
Чому ми можемо використовувати `std :: move` на об’єкті` const`?
В C ++ 11 ми можемо написати цей код: struct Cat { Cat(){} }; const Cat cat; std::move(cat); //this is valid in C++11 коли я дзвоню std::move, це означає, що я хочу перемістити об'єкт, тобто я зміню об'єкт. Рухати constоб’єкт нерозумно, тож чому б std::moveне обмежувати цю поведінку? Це буде …
113 c++  c++11 



8
Найкраще введення в метапрограмування шаблонів на C ++? [зачинено]
Зачинено. Це питання не відповідає вказівкам щодо переповнення стека . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для переповнення стека. Закрито 3 роки тому . Удосконаліть це питання Статичне метапрограмування (він же "метапрограмування шаблонів") - це чудова техніка С ++, яка дозволяє виконувати …

4
Чи cout синхронізовано / безпечно для потоків?
Взагалі я припускаю, що потоки не синхронізовані, користувач повинен зробити відповідне блокування. Однак, чи є такі речі, як coutспеціальна обробка в стандартній бібліотеці? Тобто, якщо записується декілька потоків, чи coutможуть вони пошкодити coutоб'єкт? Я розумію, що навіть при синхронізації ви все одно отримаєте випадковий переплетений вихід, але це перемежування гарантоване. …
112 c++  gcc  c++11 

20
Як можна повторити елементи std :: tuple?
Як я можу повторити кортеж (за допомогою C ++ 11)? Я спробував таке: for(int i=0; i<std::tuple_size<T...>::value; ++i) std::get<i>(my_tuple).do_sth(); але це не працює: Помилка 1: вибачте, не виконане: не можна розширити "Слухач ..." у список аргументів фіксованої довжини. Помилка 2: я не можу відображатися в постійному виразі. Отже, як я правильно …


9
Чому викидаєте невикористані значення повернення до недійсних?
int fn(); void whatever() { (void) fn(); } Чи є якась причина, щоб викинути невикористане повернене значення недійсним, чи я маю рацію, думаючи, що це повна трата часу? Слідувати: Добре, що здається досить вичерпним. Я вважаю, що це краще, ніж коментувати невикористане значення повернення, оскільки самодокументування коду краще, ніж коментарі. …
112 c++  c  void 

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