Публикации по теме 'cpp'
Тревога работы с перечислениями C++
В настоящее время все знают дрель. Когда вы можете перечислить все возможные значения типа, хорошей идеей будет превратить его в перечисление .
enum Fruit {
Apple,
Orange,
Peach
};
Просто и чисто. Таким образом, ваша IDE может дать вам аккуратный список автозаполнения, компилятор может предупредить вас, если вы пропустите значение в переключателе, и все будут довольны. Конец истории, да?
К сожалению нет.
На практике первое, что вы заметите, это то, что все значения..
Кратчайший путь алгоритма Беллмана Форда с одним источником
Алгоритм Беллмана-Форда находит кратчайший путь от исходной вершины ко всем вершинам графа. Граф может содержать ребра с отрицательным весом, но не должен содержать цикл с отрицательным весом, достижимый из исходной вершины.
Алгоритм возвращает TRUE, если нет цикла с отрицательным весом, и FALSE, если существует цикл с отрицательным весом, достижимый из исходной вершины. Если существует цикл с отрицательным весом, достижимый из исходной вершины, то решения не существует.
На рис...
Разделить одноцикловый связанный список | Реализация С++
Учитывая одноциклический связанный список, мы должны разделить его на две равные половины. Если количество узлов в данном списке нечетное, то в первом списке будет на один узел больше, чем во втором списке.
Input : { 2, 3, 18, 25, 5 }
Output List 1 : { 2, 3, 18 }
Output List 2 : { 25, 5 }
Из приведенного выше рис. сначала мы должны найти средний узел данного кругового связанного списка.
Средний узел можно найти с помощью slow_ptr и fast_ptr . slow_ptr увеличивается на один..
Взломать интервью C ++ - Часть 1
Основные знания C ++ для успешного прохождения собеседования по C ++
Особенности
Переполнение Преобразование между десятичным и двоичным числами Ошибки представления и округления чисел с плавающей запятой Побитовые операции, битовые квартиры, битовые маски Ключевое слово Extern и ссылка, статическое ключевое слово Неявные и явные преобразования типов Инициализация и присвоение структур Ключевое слово auto Инициализация массива Строка в стиле C Различия между указателями и..
Современный C++: инициализация, часть 1
Краткое введение:
(Если вы хотите сразу перейти к делу, прокрутите вниз до раздела: Как следует инициализировать переменные в современном C++)
Лично мне не понравилось, как меня учили C++ во время моей программы по информатике. Даже предлагаемая литература отличалась от того, что обычно предлагают программисты на C++ в stackoverflow или блогах. Мы были вынуждены использовать C-стиль для кодирования наших заданий, и были наложены бессмысленные ограничения, например, std::string..
Новый релиз PVS-Studio и поиск ошибочного паттерна a.insert(b.end(), value); тип
В конце прошлого года Бен Портер спросил в Твиттере, может ли компилятор найти неправильное использование итераторов в этом коде:
std::vector<int> to_vector(int value)
{
std::vector<int> a, b;
a.insert(b.end(), value);
return a;
}
Джейсон Тернер (ведущий CppCast) тогда ответил и предложил , что это может сделать анализатор PVS-Studio: Я не могу тестировать сразу, но думаю, что PVS-Studio умеет ловить такие ошибки «@Code_Analysis . Я знаю, что некоторые..
C / C ++ для разработчика Python: Введение
C / C ++ для разработчика Python: Введение
Первая статья из серии о том, как познакомить разработчиков Python с миром C / C ++.
Как разработчик, работающий как с python, так и с C / C ++, я уверен, что при совместном использовании этих языков они могут усилить каждую из своих сильных сторон, избегая при этом унаследованных недостатков. Python предоставляет, казалось бы, бесконечный запас мощных библиотек, поддержку сообщества и относительно неглубокую кривую обучения. C / C ++, с..