Уютное сообщество С++ разработчиков
783 subscribers
80 photos
7 videos
82 links
Изучаем C++.
Ресурсы, обучения, задачи, шпаргалки.
Вопросы с собеседований по C++ и ответы на них.
Задачи и тесты по C++ для тренировки и обучения.
По рекламе: @anothertechrock
Download Telegram
👩‍💻 Cортировка элементов в контейнере с помощью библиотеки <algorithm>

<algorithm> — предоставляет набор стандартных алгоритмов для работы с контейнерами, такими как массивы, векторы и другие последовательности, включает множество полезных инструментов для обработки данных.

Основные алгоритмы:

• std::sort — сортирует элементы диапазона.

• std::find — ищет элемент в контейнере.

• std::reverse — переворачивает элементы диапазона.


🔥 — если узнал новое
🤝 если уже пользовался

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Присвоение лямбды
#новичкам

Изучение лямбда выражений - не самая простая задача для начинающего плюсовика. Сложные термины, какие-то замыкания, списки захвата и прочее. В общем, непросто. И с виду можно подумать, что 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 — предоставляет функционал для работы с файлами и директориями, позволяет выполнять итерацию по содержимому директорий и получать информацию о файлах, например, их размер.

Основные возможности и общий функционал читай на картинках выше 👆


🔥 — если узнал новое
🤝 если уже пользовался

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
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 для хранения ключ-значение

std::map — это контейнер, который хранит данные в виде пар ключ-значение, где ключи уникальны и автоматически сортируются.

Он автоматически сортирует элементы по ключам и обеспечивает быстрый поиск, вставку и удаление данных на основе ключей.

• insert() — вставляет новую пару ключ-значение

• find() — находит элемент по ключу

• erase() — удаляет элемент по ключу.

• size() — возвращает количество элементов в std::map


🔥 — если узнал новое
🤝 если уже пользовался

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝2
И ведь приходится разворачиваться....
Programming: Principles and Practice Using C++

Автор:
Bjarne Stroustrup
Год издания: 2023

#en #cpp #2O23

Скачать книгу
👍1
Статья дня. Параллельный метод сортировки массива std::thread

Принцип «разделяй и властвуй» является одной из фундаментальных стратегий в разработке параллельных алгоритмов. Он заключается в разбиении задачи на более мелкие подзадачи, решение которых происходит независимо, а затем объединении результатов этих подзадач для получения окончательного результата.

Читать статью

#читать
😄Нашел для вас полезную статью с Хабра, в которой вы узнаете, как создать программу компьютерного зрения на C++

В этой статье:
• Cоздадите проект в IDE Android Studio.
• Реализуете сессию непрерывного захвата изображений камеры.
• Преобразуете изображения в матрицу OpenCV.

🔊 Советую продолжить читать на Habr!


📣 C++ Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
Уже сталкивались с обработкой файлов?
#новичкам

Сейчас начнем про это говорить. Обработка файлов позволяет читать и записывать данные, что является важной частью многих приложений.

Первым делом необходимо подключить <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;
}


🔥 Так что всё это, позволяет сохранять и загружать данные, делая ваши приложения более функциональными

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
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++. Знание таких инструментов позволяет ускорить выполнение повседневных задач в программировании.

Уютное сообщество С++ разработчиков | #шпора
👍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