Правила трех, пяти и нуля
В этой статье представлены правила трех, пяти и нуля, а также объясняется, какое из них следует использовать и когда.
Правило трех было придумано еще в 1991 году. Оно расширилось до правила пяти с семантикой перемещений в C++11, но даже оно затем было подчинено правилу нуля. Но что такое все эти правила? И должны ли мы им следовать?
#cpp #programming
👉 @cpp_lib
В этой статье представлены правила трех, пяти и нуля, а также объясняется, какое из них следует использовать и когда.
Правило трех было придумано еще в 1991 году. Оно расширилось до правила пяти с семантикой перемещений в C++11, но даже оно затем было подчинено правилу нуля. Но что такое все эти правила? И должны ли мы им следовать?
#cpp #programming
👉 @cpp_lib
👍4
Inside boost::unordered_flat_map
https://bannalia.blogspot.com/2022/11/inside-boostunorderedflatmap.html
#cpp #programming
👉 @cpp_lib
https://bannalia.blogspot.com/2022/11/inside-boostunorderedflatmap.html
#cpp #programming
👉 @cpp_lib
Blogspot
Inside <code>boost::unordered_flat_map</code>
Introduction The case for open addressing SIMD-accelerated lookup boost::unordered_flat_map data structure Rehashing Hash post-mixing Sta...
Решение задач C++
Массивы в C++
Двумерные массивы в C++ | Главная и побочная диагональ матрицы
Рекурсия C++
Двумерный массив C++. Элементы над главной и под главной диагональю.
Динамические массивы C++
Объектно-ориентированное программирование в C++ за 10 минут!
источник
#cpp #programming
👉 @cpp_lib
Массивы в C++
Двумерные массивы в C++ | Главная и побочная диагональ матрицы
Рекурсия C++
Двумерный массив C++. Элементы над главной и под главной диагональю.
Динамические массивы C++
Объектно-ориентированное программирование в C++ за 10 минут!
источник
#cpp #programming
👉 @cpp_lib
🔥8👍5
Пишем на С++ вектор, умеющий расширяться без копирования элементов
В языке С есть функции malloc, free и realloc. При использовании последней вы можете написать этакий расширяющийся массив из примитивных типов или структур (классов-то нет), который, можно надеяться, не будет копировать все данные при каждом расширении. В С++ есть встроенный класс vector, который представляет из себя расширяющийся массив, но он так не умеет: при каждом расширении вектора выделяется новый участок памяти и все элементы перемещаются на него (по возможности, с использованием move-семантики). Но ведь, если можно каждый раз не копировать все старые элементы на новое место, вектор должен работать быстрее? В этой статье я попробую написать вектор, который умеет расширяться без копирования элементов.
Сначала я покажу, что стандартный вектор не умеет расширяться без копирования/перемещения, потом обсужу придуманное решение, потом собственно приведу реализацию вектора, а в конце сравню производительность со стандартным вектором.
https://habr.com/ru/post/701784/
#cpp #programming
👉 @cpp_lib
В языке С есть функции malloc, free и realloc. При использовании последней вы можете написать этакий расширяющийся массив из примитивных типов или структур (классов-то нет), который, можно надеяться, не будет копировать все данные при каждом расширении. В С++ есть встроенный класс vector, который представляет из себя расширяющийся массив, но он так не умеет: при каждом расширении вектора выделяется новый участок памяти и все элементы перемещаются на него (по возможности, с использованием move-семантики). Но ведь, если можно каждый раз не копировать все старые элементы на новое место, вектор должен работать быстрее? В этой статье я попробую написать вектор, который умеет расширяться без копирования элементов.
Сначала я покажу, что стандартный вектор не умеет расширяться без копирования/перемещения, потом обсужу придуманное решение, потом собственно приведу реализацию вектора, а в конце сравню производительность со стандартным вектором.
https://habr.com/ru/post/701784/
#cpp #programming
👉 @cpp_lib
Хабр
Пишем на С++ вектор, умеющий расширяться без копирования элементов
В языке С есть функции malloc , free и realloc . При использовании последней вы можете написать этакий расширяющийся массив из примитивных типов или структур (классов-то нет), который, можно...
👍6🥰1
Modern C++ (2021 Lecture & Tutorials)
Lecture 0: Course Introduction, Organization, Hello World (2021)
Hands-on Tutorial: Working with Linux (2021)
Lecture 1: Build Systems (2021)
Lecture 2: C++ Basic Syntax (2021)
Lecture 3: C++ Functions (2021)
Lecture 5: I/O & Filesystem
Hands-on Tutorial: OpenCV (2021)
Все видео доступны на youtube
#cpp #programming
👉 @cpp_lib
Lecture 0: Course Introduction, Organization, Hello World (2021)
Hands-on Tutorial: Working with Linux (2021)
Lecture 1: Build Systems (2021)
Lecture 2: C++ Basic Syntax (2021)
Lecture 3: C++ Functions (2021)
Lecture 5: I/O & Filesystem
Hands-on Tutorial: OpenCV (2021)
Все видео доступны на youtube
#cpp #programming
👉 @cpp_lib
Лучшие способы преобразования перечисления в строку
https://belaycpp.com/2021/08/24/best-ways-to-convert-an-enum-to-a-string/
#cpp #programming
👉 @cpp_lib
https://belaycpp.com/2021/08/24/best-ways-to-convert-an-enum-to-a-string/
#cpp #programming
👉 @cpp_lib
👍4
Базовый курс C++ (MIPT, ILab)
1. Scent of C++.
2. Указатели и ссылки
3. Имена и сущности
4. Инициализация и копирование.
5. RAII и перемещение
6. Приведение типов
7. Перегрузка операторов
8. Наследование и полиморфизм
9. Множественное наследование
10. Языки и грамматики
11. Исключения
12. Безопасность исключений
13. Проектирование
14 (доп). OpenGL и Vulkan
15. Вычисления на GPU.
16. Специализация и инстанцирование.
17. Вывод типов и свёртка ссылок.
18. Определители типов и SFINAE
19. Вариабельные шаблоны.
20. Итераторы
21. LLVM, часть 1
22. LLVM, часть 2
23. Последовательные контейнеры.
24. Ассоциативные контейнеры
25. Алгоритмы и функторы.
26. Метапрограммирование.
27. Constexpr функции.
28. Концепты и напутственные слова.
Все видео доступны на youtube
#cpp #programming
👉 @cpp_lib
1. Scent of C++.
2. Указатели и ссылки
3. Имена и сущности
4. Инициализация и копирование.
5. RAII и перемещение
6. Приведение типов
7. Перегрузка операторов
8. Наследование и полиморфизм
9. Множественное наследование
10. Языки и грамматики
11. Исключения
12. Безопасность исключений
13. Проектирование
14 (доп). OpenGL и Vulkan
15. Вычисления на GPU.
16. Специализация и инстанцирование.
17. Вывод типов и свёртка ссылок.
18. Определители типов и SFINAE
19. Вариабельные шаблоны.
20. Итераторы
21. LLVM, часть 1
22. LLVM, часть 2
23. Последовательные контейнеры.
24. Ассоциативные контейнеры
25. Алгоритмы и функторы.
26. Метапрограммирование.
27. Constexpr функции.
28. Концепты и напутственные слова.
Все видео доступны на youtube
#cpp #programming
👉 @cpp_lib
👍10❤6
Примеры C++ кода до и после Ranges
Измените несортированный диапазон, чтобы он сохранял только уникальные значения, но в обратном порядке
👉 @cpp_lib
Измените несортированный диапазон, чтобы он сохранял только уникальные значения, но в обратном порядке
👉 @cpp_lib
👍2