<algorithm> — предоставляет набор стандартных алгоритмов для работы с контейнерами, такими как массивы, векторы и другие последовательности, включает множество полезных инструментов для обработки данных.
Основные алгоритмы:
• std::sort — сортирует элементы диапазона.
• std::find — ищет элемент в контейнере.
• std::reverse — переворачивает элементы диапазона.
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
C/C++ Ready | Программирование
Авторский канал по разработке на C и C++.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Автор: @energy_it
РКН: https://clck.ru/3QREHc
Реклама на бирже: https://telega.in/c/cpp_ready
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Автор: @energy_it
РКН: https://clck.ru/3QREHc
Реклама на бирже: https://telega.in/c/cpp_ready
🔥2
Присвоение лямбды
#новичкам
Изучение лямбда выражений - не самая простая задача для начинающего плюсовика. Сложные термины, какие-то замыкания, списки захвата и прочее. В общем, непросто. И с виду можно подумать, что 2 одинаковые лямбды можно присваивать друг другу с легкостью. То есть может показаться, что такой код валидный:
Однако он генерирует примерно следующую ошибку:
Не нашел нужного оператора присваивания.
Да и вообще, это ж все лямбды, почему я не могу их присваивать друг другу?
Дело в том, что каждое отдельное лямбда-выражение генерирует свой тип, который называется замыканием. Только компилятор знает этот тип, вы его наружу никак не можете получить. Стандарт говорит:
Это легко проверить. Такой код выведет 0:
Типы действительно разные.
В целом, поэтому вместе с лямбдами всегда нужно использовать auto. Потому что ничего другого вы вместо типа физически не сможете написать. Но компилятор знает тип замыкания и сможет вывести правильный тип для переменной.
Ну и естественно, для двух рандомных классов неопределены операторы присваивания своих объектов друг другу. Поэтому код из начала и фейлится.
Differentiate thing apart. Stay cool.
#cpp11
#новичкам
Изучение лямбда выражений - не самая простая задача для начинающего плюсовика. Сложные термины, какие-то замыкания, списки захвата и прочее. В общем, непросто. И с виду можно подумать, что 2 одинаковые лямбды можно присваивать друг другу с легкостью. То есть может показаться, что такой код валидный:
int main() {
auto test = [](){};
test = [](){};
return 0;
}Однако он генерирует примерно следующую ошибку:
In function ‘int main()’:
error: no match for ‘operator=’ in ‘test = <lambda closure object>main()::<lambda()>{}’
note: candidate is:
note: main()::<lambda()>& main()::<lambda()>::operator=(const main()::<lambda()>&) <deleted>
no known conversion for argument 1 from ‘main()::<lambda()>’ to ‘const main()::<lambda()>&’
Не нашел нужного оператора присваивания.
Да и вообще, это ж все лямбды, почему я не могу их присваивать друг другу?
Дело в том, что каждое отдельное лямбда-выражение генерирует свой тип, который называется замыканием. Только компилятор знает этот тип, вы его наружу никак не можете получить. Стандарт говорит:
The type of the lambda-expression [...] is a unique, unnamed non-union class type — called the closure type.
Это легко проверить. Такой код выведет 0:
auto test = [](){};
auto test2 = [](){};
std::cout << std::is_same_v<decltype( test ), decltype( test2 )> << std::endl;Типы действительно разные.
В целом, поэтому вместе с лямбдами всегда нужно использовать auto. Потому что ничего другого вы вместо типа физически не сможете написать. Но компилятор знает тип замыкания и сможет вывести правильный тип для переменной.
Ну и естественно, для двух рандомных классов неопределены операторы присваивания своих объектов друг другу. Поэтому код из начала и фейлится.
Differentiate thing apart. Stay cool.
#cpp11
👍2
std::filesystem — предоставляет функционал для работы с файлами и директориями, позволяет выполнять итерацию по содержимому директорий и получать информацию о файлах, например, их размер.
Основные возможности и общий функционал читай на картинках выше👆
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
C/C++ Ready | Программирование
Авторский канал по разработке на C и C++.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Автор: @energy_it
РКН: https://clck.ru/3QREHc
Реклама на бирже: https://telega.in/c/cpp_ready
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Автор: @energy_it
РКН: https://clck.ru/3QREHc
Реклама на бирже: https://telega.in/c/cpp_ready
This media is not supported in your browser
VIEW IN TELEGRAM
Основы С++ — хендбук от Яндекса по C++, в котором вы познакомитесь с основами языка, а так же более сложными темами и познакомитесь с основными библиотеками.
⛓ Ссылочка: https://education.yandex.ru/handbook/cpp
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
std::map — это контейнер, который хранит данные в виде пар ключ-значение, где ключи уникальны и автоматически сортируются.
Он автоматически сортирует элементы по ключам и обеспечивает быстрый поиск, вставку и удаление данных на основе ключей.
• insert() — вставляет новую пару ключ-значение
• find() — находит элемент по ключу
• erase() — удаляет элемент по ключу.
• size() — возвращает количество элементов в std::map
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
C/C++ Ready | Программирование
Авторский канал по разработке на C и C++.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Автор: @energy_it
РКН: https://clck.ru/3QREHc
Реклама на бирже: https://telega.in/c/cpp_ready
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Автор: @energy_it
РКН: https://clck.ru/3QREHc
Реклама на бирже: https://telega.in/c/cpp_ready
🤝2
Programming: Principles and Practice Using C++
Автор: Bjarne Stroustrup
Год издания: 2023
#en #cpp #2O23
Скачать книгу
Автор: Bjarne Stroustrup
Год издания: 2023
#en #cpp #2O23
Скачать книгу
👍1
Статья дня. Параллельный метод сортировки массива std::thread
Принцип «разделяй и властвуй» является одной из фундаментальных стратегий в разработке параллельных алгоритмов. Он заключается в разбиении задачи на более мелкие подзадачи, решение которых происходит независимо, а затем объединении результатов этих подзадач для получения окончательного результата.
Читать статью
#читать
Принцип «разделяй и властвуй» является одной из фундаментальных стратегий в разработке параллельных алгоритмов. Он заключается в разбиении задачи на более мелкие подзадачи, решение которых происходит независимо, а затем объединении результатов этих подзадач для получения окончательного результата.
Читать статью
#читать
В этой статье:
• Cоздадите проект в IDE Android Studio.• Реализуете сессию непрерывного захвата изображений камеры.• Преобразуете изображения в матрицу OpenCV.🔊 Советую продолжить читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
Уже сталкивались с обработкой файлов?
#новичкам
Сейчас начнем про это говорить. Обработка файлов позволяет читать и записывать данные, что является важной частью многих приложений.
Первым делом необходимо подключить
Чтобы прочитать данные из файла, используем
Для записи данных в файл используем
Также важно проверять, удалось ли открыть файл, чтобы избежать ошибок:
🔥 Так что всё это, позволяет сохранять и загружать данные, делая ваши приложения более функциональными
📣 C++ Ready | #практика
#новичкам
Сейчас начнем про это говорить. Обработка файлов позволяет читать и записывать данные, что является важной частью многих приложений.
Первым делом необходимо подключить
<fstream>:#include <fstream>
#include <iostream>
#include <string>
Чтобы прочитать данные из файла, используем
std::ifstream. Например, открыть файл и вывести его содержимое на экран:std::ifstream inputFile("example.txt");
std::string line;
while (std::getline(inputFile, line)) {
std::cout << line << std::endl;
}Для записи данных в файл используем
std::ofstream. Записать строку в файл:std::ofstream outputFile("output.txt");
outputFile << "Hello, World!" << std::endl;Также важно проверять, удалось ли открыть файл, чтобы избежать ошибок:
if (!inputFile) {
std::cerr << "Не удалось открыть файл!" << std::endl;
}🔥 Так что всё это, позволяет сохранять и загружать данные, делая ваши приложения более функциональными
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
C/C++ Ready | Программирование
Авторский канал по разработке на C и C++.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Автор: @energy_it
РКН: https://clck.ru/3QREHc
Реклама на бирже: https://telega.in/c/cpp_ready
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Автор: @energy_it
РКН: https://clck.ru/3QREHc
Реклама на бирже: https://telega.in/c/cpp_ready
This media is not supported in your browser
VIEW IN TELEGRAM
cppreference— обширная и подробная документация по стандартной библиотеке C++, включая примеры и пояснения.
📌 Ссылочка: cppreference.com
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Cheatography — на данном сайте насчитывается более 6000 шпаргалок по разным языкам, фреймворкам и горячим клавишам. Также там достаточно материала и по C++
📌 Ссылочка: cheatography.com
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👩💻 Некоторые полезные функции массивов
В этом посте мы рассмотрим функции и методы C++. Знание таких инструментов позволяет ускорить выполнение повседневных задач в программировании.
Уютное сообщество С++ разработчиков | #шпора
В этом посте мы рассмотрим функции и методы C++. Знание таких инструментов позволяет ускорить выполнение повседневных задач в программировании.
Уютное сообщество С++ разработчиков | #шпора
👍1
Обновляем канал, сейчас посты будут выходить намного чаще.
👌3🎉1
int a = 5; int& b = a; b = 10; std::cout << a;
Anonymous Quiz
26%
5
62%
10
13%
Ошибка компиляции
0%
2
❤1🔥1👌1