C++ известен своей скоростью и эффективностью, но иногда разработчики идут по скользкому пути микрооптимизаций, которые могут навредить читаемости кода или вовсе не приносить ощутимой выгоды. Давайте разберем, когда стоит задумываться об оптимизации, а когда — нет.
Предпочтение префиксного инкремента
Хотя разница незначительна, использование префиксного
++i
вместо постфиксного i++
может дать преимущество, особенно при работе с итераторами:for (int i = 0; i < n; ++i) {
// Делаем что-то
}
Это связано с тем, что постфиксный инкремент создает временный объект, который затем уничтожается. В примитивных типах разница минимальна, но при работе с итераторами STL префиксный инкремент может быть быстрее.
Избегайте копирования, используйте `emplace_back`
Метод
emplace_back()
в контейнерах STL создает объект на месте, избегая ненужного копирования:std::vector<std::string> vec;
vec.emplace_back("Hello, World!");
Явное использование `std::move` для оптимизации перемещений
Не стоит забывать про использование
std::move
для передачи временных объектов, чтобы избежать ненужного копирования:std::string str = "Hello";
std::vector<std::string> vec;
vec.push_back(std::move(str));
Компиляторы C++ уже весьма хороши в оптимизации, и иногда избыточная ручная оптимизация может сделать код сложным для понимания.
Жми 🔥 если понравился пост
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👍12
This media is not supported in your browser
VIEW IN TELEGRAM
MAXimal — Интересная платформа, которая предоставляет сборник алгоритмов и книг, возьмите на заметку, если планируете поучить различные алгоритмы
📌 Ссылочка: http://e-maxx.ru
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥44🤝12👍4
📖 Алгоритмы: построение и анализ
⬇️ Скачать книгу
📣 C++ Ready | #книга
Является незаменимым ресурсом для студентов, аспирантов и профессионалов в области компьютерных наук. Она помогает развить критическое мышление и навыки решения задач, что является важным аспектом в любой области программирования
Автор: Томас Х. Чарльз E.
Год: 2013
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🤝5👍2👎1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33🤝17👍7
This media is not supported in your browser
VIEW IN TELEGRAM
GeeksforGeeks — это популярный онлайн-ресурс, посвященный обучению программированию и компьютерным наукам. Он предлагает широкий спектр материалов
📌 Ссылочка: geeksforgeeks.org
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍4🤝2
🔥18👍4🤝4
В этом посте изучим как использовать std::unordered_map в C++ для хранения данных в виде пар ключ-значение. Рассмотрим некоторые вещи:
- Создание и добавление элементов
- Извлечение данных
- Удаление элемента
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40🤝18👍3