c++ ×45
Создан 03.01.2025
34
голоса
5
ответов
36
просмотров
В чем проблема с "using namespace std;"?

Я слышал, что использование using namespace std; считается плохой практикой, и что мне следует прямо использовать stdcout и stdcin. Почему это так? Не возникает ли риска объявления переменных с такими же именами, как что-то в пространстве имен std? Есть ли проблемы с производительностью?

33
голоса
5
ответов
14
просмотров
Как перебрать слова в строке?

Как мне пройтись по словам строки, состоящей из слов, разделенных пробелами?

Обратите внимание, что меня не интересуют функции работы со строками в C или подобные манипуляции с символами. Я предпочитаю элегантность, а не эффективность. Мое текущее решение:

#include 
#include 
#include...
31
голоса
5
ответов
11
просмотров
В чем разница между #include <filename> и #include "filename"?

В чем разница между использованием угловых скобок и кавычек в директиве include?

#include <filename> #include "filename"

28
голоса
5
ответов
25
просмотров
Как изменить цвет вывода echo в Linux

Я пытаюсь вывести текст в терминале с помощью команды echo.

Я хочу, чтобы текст был напечатан красным цветом. Как мне это сделать?

25
голоса
5
ответов
14
просмотров
Что такое Правило трёх?

Проблема с копированием объектов в C++:

  1. Что означает копирование объекта?
  2. Что такое конструктор копирования и оператор присваивания копии?
  3. Когда мне нужно объявлять их самостоятельно?
  4. Как я могу предотвратить копирование своих объектов?
21
голоса
5
ответов
15
просмотров
Почему чтение строк из stdin в C++ гораздо медленнее, чем в Python?

Я хотел сравнить скорость чтения строк из стандартного ввода, используя Python и C++, и был поражен тем, что мой код на C++ работает на порядок медленнее, чем эквивалентный код на Python. Поскольку мой C++ немного ржавый, а я еще не стал экспертом в Python, прошу вас сказать, делаю ли я что-то...

21
голоса
5
ответов
11
просмотров
Каково влияние extern "C" в C++?

Проблема заключается в том, что неясно, какую роль играет конструкция extern "C" в коде на C++.

Например, я могу привести следующий фрагмент кода:

extern "C" { void foo(); }

Ожидается, что ответ на вопрос о том, что делает эта конструкция, поможет мне лучше понять, как интерфейсы C и C++...

21
голоса
5
ответов
11
просмотров
Как преобразовать int в строку в C++?

Заголовок: Как конвертировать int в эквивалентный string в C++? Есть ли другие способы?

Описание проблемы: Я сталкиваюсь с задачей преобразования целого числа (int) в строку (string) в C++. На данный момент я знаю о двух способах, которые можно использовать для достижения этой...

20
голоса
0
ответов
37
просмотров
Сравнение регулярного приведения типов, static_cast и dynamic_cast

Суть проблемы:

Я пишу на C и C++ почти двадцать лет, но есть один аспект этих языков, который я никогда не понимал. Я, конечно, использовал обычные преобразования (касты), например:

MyClass *m = (MyClass *)ptr;

Но есть еще два типа приведения типов, и я не знаю, чем они...

19
голоса
5
ответов
8
просмотров
Когда использовать виртуальные деструкторы?

У меня есть хорошее понимание большинства теорий объектно-ориентированного программирования (OOP), но один момент, который меня сильно пугает, — это виртуальные деструкторы.

Я полагал, что деструктор всегда вызывается, вне зависимости от ситуации, и для каждого объекта в иерархии классов.

В...

19
голоса
5
ответов
16
просмотров
Почему следует использовать указатель вместо самого объекта?

Я пришёл из мира Java и начал работать с объектами в C++. Но меня смутило, что многие разработчики часто используют указатели на объекты, а не сами объекты. Например, вот так:

Object *myObject = new Object;

вместо этого:

Object myObject;

Также, вместо того чтобы...

18
голоса
4
ответов
16
просмотров
Ошибка "Неопределенная ссылка/нестираемая внешняя символ" — что это такое и как её исправить?

Что такое ошибки "неопределенная ссылка"/"нерешенный внешний символ"? Каковы их общие причины и как можно исправить и предотвратить эти ошибки?

18
голоса
5
ответов
12
просмотров
Разница между const int*, const int * const и int * const?

Я всегда путаюсь, как правильно использовать const int *, const int * const и int * const. Существенно ли их различие? Существуют ли какие-то правила, определяющие, что можно, а что нельзя делать с этими указателями?

Мне нужно знать все "можно" и "нельзя" в контексте присваивания, передачи...

17
голоса
0
ответов
9
просмотров
Что такое лямбда-выражение и когда его следует использовать?

Вопрос: Что такое лямбда-выражение в C++11? В каких ситуациях я мог бы его использовать? Какие классы задач они решают, что было невозможно до их введения?

Несколько примеров и областей применения были бы полезны.

17
голоса
5
ответов
14
просмотров
Является ли < быстрее, чем <=?

Является ли выражение if (a < 901) быстрее, чем if (a <= 900)? Хотя в этом простом примере разница в производительности незначительна, но в более сложных циклах можно наблюдать небольшие изменения в производительности. Я предполагаю, что это может как-то влиять на сгенерированный машинный...

16
голоса
2
ответов
10
просмотров
Почему замена 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,
          ...
15
голоса
5
ответов
9
просмотров
Циклы в программном обеспечении для семейных деревьев

Я разработчик программного обеспечения для построения генеалогического дерева (на C++ и Qt). У меня не было проблем, пока один из клиентов не прислал мне отчет об ошибке. Проблема заключается в том, что у клиента есть два ребенка от собственной дочери, и в результате он не может использовать мою...

13
голоса
2
ответов
14
просмотров
Где и зачем нужно использовать ключевые слова "template" и "typename"?

В шаблонах, где и почему мне нужно указывать typename и template для зависимых имен? Что такое зависимые имена?

У меня есть следующий код:

template  // Tail тоже будет UnionNode.
struct UnionNode : public Tail {
    // ...
    template  struct inUnion {
        // Вопрос: где нужно...
12
голоса
5
ответов
7
просмотров
Какова разница между публичным, приватным и защищённым наследованием?

Вопрос: Какова разница между public, private и protected наследованием в C++?

Описание проблемы: Я изучаю C++ и пытаюсь разобраться в различных типах наследования, но не могу понять, как именно различаются public, private и protected наследования. Как они влияют на доступ к членам...

12
голоса
5
ответов
20
просмотров
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);

Учитывая, что существует перегрузка метода...