Вопросы
В чем проблема с "using namespace std;"?
Я слышал, что использование using namespace std; считается плохой практикой, и что мне следует прямо использовать stdcout и stdcin. Почему это так? Не возникает ли риска объявления переменных с такими же именами, как что-то в пространстве имен std? Есть ли проблемы с производительностью?
Как перебрать слова в строке?
Как мне пройтись по словам строки, состоящей из слов, разделенных пробелами?
Обратите внимание, что меня не интересуют функции работы со строками в C или подобные манипуляции с символами. Я предпочитаю элегантность, а не эффективность. Мое текущее решение:
#include
#include
#include...
В чем разница между #include <filename> и #include "filename"?
В чем разница между использованием угловых скобок и кавычек в директиве include?
#include <filename> #include "filename"
Как изменить цвет вывода echo в Linux
Я пытаюсь вывести текст в терминале с помощью команды echo.
Я хочу, чтобы текст был напечатан красным цветом. Как мне это сделать?
Что такое Правило трёх?
Проблема с копированием объектов в C++:
- Что означает копирование объекта?
- Что такое конструктор копирования и оператор присваивания копии?
- Когда мне нужно объявлять их самостоятельно?
- Как я могу предотвратить копирование своих объектов?
Почему чтение строк из stdin в C++ гораздо медленнее, чем в Python?
Я хотел сравнить скорость чтения строк из стандартного ввода, используя Python и C++, и был поражен тем, что мой код на C++ работает на порядок медленнее, чем эквивалентный код на Python. Поскольку мой C++ немного ржавый, а я еще не стал экспертом в Python, прошу вас сказать, делаю ли я что-то...
Каково влияние extern "C" в C++?
Проблема заключается в том, что неясно, какую роль играет конструкция extern "C"
в коде на C++.
Например, я могу привести следующий фрагмент кода:
extern "C" { void foo(); }
Ожидается, что ответ на вопрос о том, что делает эта конструкция, поможет мне лучше понять, как интерфейсы C и C++...
Как преобразовать int в строку в C++?
Заголовок: Как конвертировать int
в эквивалентный string
в C++? Есть ли другие способы?
Описание проблемы:
Я сталкиваюсь с задачей преобразования целого числа (int
) в строку (string
) в C++. На данный момент я знаю о двух способах, которые можно использовать для достижения этой...
Сравнение регулярного приведения типов, static_cast и dynamic_cast
Суть проблемы:
Я пишу на C и C++ почти двадцать лет, но есть один аспект этих языков, который я никогда не понимал. Я, конечно, использовал обычные преобразования (касты), например:
MyClass *m = (MyClass *)ptr;
Но есть еще два типа приведения типов, и я не знаю, чем они...
Когда использовать виртуальные деструкторы?
У меня есть хорошее понимание большинства теорий объектно-ориентированного программирования (OOP), но один момент, который меня сильно пугает, — это виртуальные деструкторы.
Я полагал, что деструктор всегда вызывается, вне зависимости от ситуации, и для каждого объекта в иерархии классов.
В...
Почему следует использовать указатель вместо самого объекта?
Я пришёл из мира Java и начал работать с объектами в C++. Но меня смутило, что многие разработчики часто используют указатели на объекты, а не сами объекты. Например, вот так:
Object *myObject = new Object;
вместо этого:
Object myObject;
Также, вместо того чтобы...
Ошибка "Неопределенная ссылка/нестираемая внешняя символ" — что это такое и как её исправить?
Что такое ошибки "неопределенная ссылка"/"нерешенный внешний символ"? Каковы их общие причины и как можно исправить и предотвратить эти ошибки?
Разница между const int*, const int * const и int * const?
Я всегда путаюсь, как правильно использовать const int *
, const int * const
и int * const
. Существенно ли их различие? Существуют ли какие-то правила, определяющие, что можно, а что нельзя делать с этими указателями?
Мне нужно знать все "можно" и "нельзя" в контексте присваивания, передачи...
Что такое лямбда-выражение и когда его следует использовать?
Вопрос: Что такое лямбда-выражение в C++11? В каких ситуациях я мог бы его использовать? Какие классы задач они решают, что было невозможно до их введения?
Несколько примеров и областей применения были бы полезны.
Является ли < быстрее, чем <=?
Является ли выражение if (a < 901) быстрее, чем if (a <= 900)? Хотя в этом простом примере разница в производительности незначительна, но в более сложных циклах можно наблюдать небольшие изменения в производительности. Я предполагаю, что это может как-то влиять на сгенерированный машинный...
Почему замена 0.1f на 0 замедляет производительность в 10 раз?
Проблема:
Почему следующий участок кода:
const float x[16] = { 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8,
1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6};
const float z[16] = {1.123, 1.234, 1.345, 156.467, 1.578, 1.689, 1.790, 1.812,
...
Циклы в программном обеспечении для семейных деревьев
Я разработчик программного обеспечения для построения генеалогического дерева (на C++ и Qt). У меня не было проблем, пока один из клиентов не прислал мне отчет об ошибке. Проблема заключается в том, что у клиента есть два ребенка от собственной дочери, и в результате он не может использовать мою...
Где и зачем нужно использовать ключевые слова "template" и "typename"?
В шаблонах, где и почему мне нужно указывать typename и template для зависимых имен? Что такое зависимые имена?
У меня есть следующий код:
template // Tail тоже будет UnionNode.
struct UnionNode : public Tail {
// ...
template struct inUnion {
// Вопрос: где нужно...
Какова разница между публичным, приватным и защищённым наследованием?
Вопрос: Какова разница между public, private и protected наследованием в C++?
Описание проблемы: Я изучаю C++ и пытаюсь разобраться в различных типах наследования, но не могу понять, как именно различаются public, private и protected наследования. Как они влияют на доступ к членам...
push_back против emplace_back: в чем разница?
Я немного запутался в различии между методами push_back
и emplace_back
в стандартной библиотеке C++.
Вот определения этих методов:
void emplace_back(Type&& _Val);
void push_back(const Type& _Val);
void push_back(Type&& _Val);
Учитывая, что существует перегрузка метода...