Публикации по теме '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 ++, с..