Бесконечный цикл
Для чего? Когда while(true), while(1), for(;;) и прочие стандартные пути создания цикла кажутся не слишком информативными, можно использовать подобный макрос. Единственный плюс который он дает — чуть лучшую читаемость кода.
#cpp
Подписывайтесь на канал 👉@cod_academy
Для чего? Когда while(true), while(1), for(;;) и прочие стандартные пути создания цикла кажутся не слишком информативными, можно использовать подобный макрос. Единственный плюс который он дает — чуть лучшую читаемость кода.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍1
Класс Java.io.OutputStream в Java
Этот абстрактный класс является суперклассом всех классов, представляющих выходной поток байтов. Output-поток принимает байты и отправляет их в какой-то приемник. Приложения, которым необходимо определить подкласс OutputStream, всегда должны предоставлять по крайней мере метод, который записывает один байт вывода.
#java
Подписывайтесь на канал 👉@cod_academy
Этот абстрактный класс является суперклассом всех классов, представляющих выходной поток байтов. Output-поток принимает байты и отправляет их в какой-то приемник. Приложения, которым необходимо определить подкласс OutputStream, всегда должны предоставлять по крайней мере метод, который записывает один байт вывода.
#java
Подписывайтесь на канал 👉@cod_academy
👍1
Как проверить существование переменной в Python?
Вы можете использовать in locals() или in globals(), чтобы проверить переменная существует в Python, разница только:
in locals() проверяет если переменная объявлена в локальной зоне видимости
in globals() проверяет если переменная объявлена в глобальной зоне видимости
#python
Подписывайтесь на канал 👉@cod_academy
Вы можете использовать in locals() или in globals(), чтобы проверить переменная существует в Python, разница только:
in locals() проверяет если переменная объявлена в локальной зоне видимости
in globals() проверяет если переменная объявлена в глобальной зоне видимости
#python
Подписывайтесь на канал 👉@cod_academy
👍2
Какие классы и интерфейсы доступны в Collection фреймворке?
Интерфейсы:
• Collection;
• List;
• Set;
• Map;
• Sorted Set;
• Sorted Map;
• Queue.
Классы:
• Lists(ArrayList, LinkedList, Vector(deprecated))
• Sets(HashSet, LinkedHashSet, TreeSet)
• Maps(HashMap, TreeMap, HashTable (deprecated), LinkedHashMap)
• Queue(Priority Queue)
#java
Подписывайтесь на канал 👉@cod_academy
Интерфейсы:
• Collection;
• List;
• Set;
• Map;
• Sorted Set;
• Sorted Map;
• Queue.
Классы:
• Lists(ArrayList, LinkedList, Vector(deprecated))
• Sets(HashSet, LinkedHashSet, TreeSet)
• Maps(HashMap, TreeMap, HashTable (deprecated), LinkedHashMap)
• Queue(Priority Queue)
#java
Подписывайтесь на канал 👉@cod_academy
👍1
Switch
Switch позволяет проверять различные условия выражения. Если же есть совпадение, будет выполняться определенная команда.
Break используется для выхода из case. Если же не использовать break, будут выполняться все условия подряд. Код в default выполняется при условии, если ни один case не был выполнен.
#cpp
Подписывайтесь на канал 👉@cod_academy
Switch позволяет проверять различные условия выражения. Если же есть совпадение, будет выполняться определенная команда.
Break используется для выхода из case. Если же не использовать break, будут выполняться все условия подряд. Код в default выполняется при условии, если ни один case не был выполнен.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍1
Метод endsWith()
Проверяет заканчивается ли эта строка указанным окончанием.
Метод возвращает значение true, если последовательность символов, представленного аргумента является окончанием последовательности символов, представленного этим объектом; в противном случаи значение false. Обратите внимание, что результатом будет значение true, если аргумент является пустой строкой или равным строковому объекту, определено как методом equals(Object).
#java
Подписывайтесь на канал 👉@cod_academy
Проверяет заканчивается ли эта строка указанным окончанием.
Метод возвращает значение true, если последовательность символов, представленного аргумента является окончанием последовательности символов, представленного этим объектом; в противном случаи значение false. Обратите внимание, что результатом будет значение true, если аргумент является пустой строкой или равным строковому объекту, определено как методом equals(Object).
#java
Подписывайтесь на канал 👉@cod_academy
👍1
Официальное упорядочивание словарей
Кстати, Python 3.7 на официальном уровне зафиксировал соответствие порядка перебора элементов словарей порядку их добавления.
Но для некоторых это не такая уж и новость, так как и в Python 3.6 словари уже были упорядочены, что видно на примере выше.
Однако это был просто побочный результат реализации, не зафиксированный в стандарте. Новый Python оформил его официально. Теперь можно быть уверенным в сохранении порядка вставки.
#python
Подписывайтесь на канал 👉@cod_academy
Кстати, Python 3.7 на официальном уровне зафиксировал соответствие порядка перебора элементов словарей порядку их добавления.
Но для некоторых это не такая уж и новость, так как и в Python 3.6 словари уже были упорядочены, что видно на примере выше.
Однако это был просто побочный результат реализации, не зафиксированный в стандарте. Новый Python оформил его официально. Теперь можно быть уверенным в сохранении порядка вставки.
#python
Подписывайтесь на канал 👉@cod_academy
👍1
Представления (Views)
Представления — это просто-напросто диапазоны, которые дешево копировать и перемещать (за константное время). Из-за этого представление не может владеть элементами, которые просматривает. Одно исключение — std::views::single, которому принадлежит единственный просматриваемый элемент.
Представления компонуются во время компиляции с прицелом на то, что компилятор заинлайнит код.
Например, следующий код последние последние три элемента диапазона. Сначала мы reverse’им диапазон, затем берем первые три элемента и, наконец, снова reverse’им диапазон (обратите внимание, что существует std::views::drop, который делает это напрямую).
#cpp
Подписывайтесь на канал 👉@cod_academy
Представления — это просто-напросто диапазоны, которые дешево копировать и перемещать (за константное время). Из-за этого представление не может владеть элементами, которые просматривает. Одно исключение — std::views::single, которому принадлежит единственный просматриваемый элемент.
Представления компонуются во время компиляции с прицелом на то, что компилятор заинлайнит код.
Например, следующий код последние последние три элемента диапазона. Сначала мы reverse’им диапазон, затем берем первые три элемента и, наконец, снова reverse’им диапазон (обратите внимание, что существует std::views::drop, который делает это напрямую).
#cpp
Подписывайтесь на канал 👉@cod_academy
Оператор присваивания ( = ), строго говоря, является бинарным оператором. Его объявление идентично объявлению любого другого бинарного оператора со следующими исключениями:
☑️ Он должен быть нестатической функцией-членом.
☑️ Он не наследуется производными классами.
☑️ Компилятор может создать функцию operator = по умолчанию для типов классов, если она не существует.
В примере показано, как объявить оператор присваивания.
#cpp
Подписывайтесь на канал 👉@cod_academy
☑️ Он должен быть нестатической функцией-членом.
☑️ Он не наследуется производными классами.
☑️ Компилятор может создать функцию operator = по умолчанию для типов классов, если она не существует.
В примере показано, как объявить оператор присваивания.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍2
Бинарный поиск
Чаще всего бинарный поиск (бинпоиск) используют, чтобы найти элемент в отсортированном массиве. Мы начинаем искать с середины массива. Если находим то, что нужно, или если больше нечего рассматривать, мы останавливаемся. В противном случае мы решаем, в каком направлении — вправо или влево от середины — мы должны продолжить поиск. Так как пространство поиска после каждой проверки делится на два, то время выполнения алгоритма — O(log n).
#cpp
Подписывайтесь на канал 👉@cod_academy
Чаще всего бинарный поиск (бинпоиск) используют, чтобы найти элемент в отсортированном массиве. Мы начинаем искать с середины массива. Если находим то, что нужно, или если больше нечего рассматривать, мы останавливаемся. В противном случае мы решаем, в каком направлении — вправо или влево от середины — мы должны продолжить поиск. Так как пространство поиска после каждой проверки делится на два, то время выполнения алгоритма — O(log n).
#cpp
Подписывайтесь на канал 👉@cod_academy
👍2
Контекстные менеджеры
Контекстные менеджеры позволяют задать поведение при работе с конструкцией with: при входе и выходе из блока. Это упрощает работу с ресурсами в части их захвата и освобождения; транзакциями, когда нужно либо полностью закончить транзакцию, либо откатить ее целиком.
Простейшей функцией, использующей данный принцип является функция open. Каждый раз, когда мы открываем файл, нам необходимо его закрыть, чтобы вытолкнуть выходные данные на диск (на самом деле Python вызывает метод close автоматически, но явное его использование является хорошим тоном).
Чтобы каждый раз не вызывать метод close мы можем воспользоваться контекстным менеджером функции open, который автоматически закроет файл после выхода из блока.
#python
Подписывайтесь на канал 👉@cod_academy
Контекстные менеджеры позволяют задать поведение при работе с конструкцией with: при входе и выходе из блока. Это упрощает работу с ресурсами в части их захвата и освобождения; транзакциями, когда нужно либо полностью закончить транзакцию, либо откатить ее целиком.
Простейшей функцией, использующей данный принцип является функция open. Каждый раз, когда мы открываем файл, нам необходимо его закрыть, чтобы вытолкнуть выходные данные на диск (на самом деле Python вызывает метод close автоматически, но явное его использование является хорошим тоном).
Чтобы каждый раз не вызывать метод close мы можем воспользоваться контекстным менеджером функции open, который автоматически закроет файл после выхода из блока.
#python
Подписывайтесь на канал 👉@cod_academy
👍1
forward_list::unique() в C++ STL
forward_list::unique() — это встроенная функция в C++ STL, которая удаляет все последовательные повторяющиеся элементы из forward_list. Для сравнения используется бинарный предикат.
#cpp
Подписывайтесь на канал 👉@cod_academy
forward_list::unique() — это встроенная функция в C++ STL, которая удаляет все последовательные повторяющиеся элементы из forward_list. Для сравнения используется бинарный предикат.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍1
Как получить доступ к переопределенным методам родительского класса?
С помощью ключевого слова super мы можем обратиться к любому члену родительского класса - методу или полю, если они не определены с модификатором private.
#java
Подписывайтесь на канал 👉@cod_academy
С помощью ключевого слова super мы можем обратиться к любому члену родительского класса - методу или полю, если они не определены с модификатором private.
#java
Подписывайтесь на канал 👉@cod_academy
👍1
Алгоритм lexicographic_compare
Совершает лексикографическое сравнение 2 диапазонов
Лексикографическое сравнение - это операция со следующими свойствами:
1)Два диапазона сравниваются поэлементно.
2)Первый элемент несовпадения определяет, какой диапазон лексикографически меньше или больше другого.
3)Если один диапазон является префиксом другого, более короткий диапазон лексикографически меньше другого.
4)Если два диапазона имеют эквивалентные элементы и имеют одинаковую длину, тогда диапазоны лексикографически равны.
5)Пустой диапазон лексикографически меньше любого непустого диапазона.
6)Два пустых диапазона лексикографически равны.
#cpp
Подписывайтесь на канал 👉@cod_academy
Совершает лексикографическое сравнение 2 диапазонов
Лексикографическое сравнение - это операция со следующими свойствами:
1)Два диапазона сравниваются поэлементно.
2)Первый элемент несовпадения определяет, какой диапазон лексикографически меньше или больше другого.
3)Если один диапазон является префиксом другого, более короткий диапазон лексикографически меньше другого.
4)Если два диапазона имеют эквивалентные элементы и имеют одинаковую длину, тогда диапазоны лексикографически равны.
5)Пустой диапазон лексикографически меньше любого непустого диапазона.
6)Два пустых диапазона лексикографически равны.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍1
Ключевое слово instanceof в Java и его применения
instanceof — это ключевое слово, которое используется для проверки того, содержит ли ссылочная переменная объектную ссылку данного типа или нет. Чтобы лучше понять его суть, предлагаю обратиться к примеру кода.
#java
Подписывайтесь на канал 👉@cod_academy
instanceof — это ключевое слово, которое используется для проверки того, содержит ли ссылочная переменная объектную ссылку данного типа или нет. Чтобы лучше понять его суть, предлагаю обратиться к примеру кода.
#java
Подписывайтесь на канал 👉@cod_academy
👍1
Копирование словарей и других объектов
Новички часто допускают такую ошибку при создании копии списка:
lst2 = lst1
При работе с одним из словарей оказывается, что изменяются оба.
Почему так происходит?
Об этом — в завтрашнем посте. Пока что расскажу, как этого избежать:
У списка существует специальный метод copy(), который нужен как раз для таких случаев.
Но подобное работает не всегда! Если имеется множество вложенных списков, то надо сделать полное копирование импортировав модуль copy и воспользовавшись методом deepcopy().
#python
Подписывайтесь на канал 👉@cod_academy
Новички часто допускают такую ошибку при создании копии списка:
lst2 = lst1
При работе с одним из словарей оказывается, что изменяются оба.
Почему так происходит?
Об этом — в завтрашнем посте. Пока что расскажу, как этого избежать:
У списка существует специальный метод copy(), который нужен как раз для таких случаев.
Но подобное работает не всегда! Если имеется множество вложенных списков, то надо сделать полное копирование импортировав модуль copy и воспользовавшись методом deepcopy().
#python
Подписывайтесь на канал 👉@cod_academy
👍1
Вывод значения по умолчанию для отсутствующего ключа словаря
Если вы обратитесь к несуществующему ключу словаря, то это вызовет исключение. Избежать этого можно, вызывая метод get. В примере метод выдает None (по умолчанию) или заданное значение аргумента.
#python
Подписывайтесь на канал 👉@cod_academy
Если вы обратитесь к несуществующему ключу словаря, то это вызовет исключение. Избежать этого можно, вызывая метод get. В примере метод выдает None (по умолчанию) или заданное значение аргумента.
#python
Подписывайтесь на канал 👉@cod_academy
👍1
Константы объекта Math
Для различных математических вычислений вам могут пригодиться встроенные константы объекта Math. Например, Math.PI – число PI, Math.SQRT2 – квадратный корень из 2, Math.SQRT1_2 – половина от квадратного корня из 2, Math.E – число Эйлера.
#javanoscript
Подписывайтесь на канал 👉@cod_academy
Для различных математических вычислений вам могут пригодиться встроенные константы объекта Math. Например, Math.PI – число PI, Math.SQRT2 – квадратный корень из 2, Math.SQRT1_2 – половина от квадратного корня из 2, Math.E – число Эйлера.
#javanoscript
Подписывайтесь на канал 👉@cod_academy
👍1
Узнать все о функции
Современные редакторы кода всегда помогут правильно написать функцию, а некоторые даже их параметры. Но что делать, если нужно узнать точно описание функции, методы или прочитать документацию?
Для всех этих действий существует две функции dir() и help(). Первая возвращает список всех доступных для функции методов. Вторая возвращает текстовую документацию.
Очень удобно использовать dir() когда не знаешь, как точно пишется метод.
С помощью help() можно узнать все об объекте и его методах даже без подключения к интернету.
#python
Подписывайтесь на канал 👉@cod_academy
Современные редакторы кода всегда помогут правильно написать функцию, а некоторые даже их параметры. Но что делать, если нужно узнать точно описание функции, методы или прочитать документацию?
Для всех этих действий существует две функции dir() и help(). Первая возвращает список всех доступных для функции методов. Вторая возвращает текстовую документацию.
Очень удобно использовать dir() когда не знаешь, как точно пишется метод.
С помощью help() можно узнать все об объекте и его методах даже без подключения к интернету.
#python
Подписывайтесь на канал 👉@cod_academy
👍1
Сколько объектов типа String создает эта программа?
Ответ:
Программа создаст два string-объекта. Когда мы создаем строку, используя оператор new, она сначала создастся в Java String Pool и только потом в куче (heap memory). Но только при условии, что этой строки ещё нет в пуле Java String.
#java
Подписывайтесь на канал 👉@cod_academy
Ответ:
Программа создаст два string-объекта. Когда мы создаем строку, используя оператор new, она сначала создастся в Java String Pool и только потом в куче (heap memory). Но только при условии, что этой строки ещё нет в пуле Java String.
#java
Подписывайтесь на канал 👉@cod_academy
👍3
Функция strrchr()
В C++ strrchr() - это предопределенная функция, используемая для обработки строк. Эта функция возвращает указатель на всю строку после последнего появления заданного символа. Символ, последнее вхождение которого мы хотим найти, передается в качестве второго аргумента функции, а строка, в которой мы должны найти этот символ, передается в качестве первого аргумента функции.
В примере кода на картинке мы используем функцию для того, чтобы найти порядковый номер символа в заданной строке.
#cpp
Подписывайтесь на канал 👉@cod_academy
В C++ strrchr() - это предопределенная функция, используемая для обработки строк. Эта функция возвращает указатель на всю строку после последнего появления заданного символа. Символ, последнее вхождение которого мы хотим найти, передается в качестве второго аргумента функции, а строка, в которой мы должны найти этот символ, передается в качестве первого аргумента функции.
В примере кода на картинке мы используем функцию для того, чтобы найти порядковый номер символа в заданной строке.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍1