LearnCpp.com - это бесплатный сайт, посвященный обучению программированию на C++. Независимо от того, есть ли у вас опыт программирования или нет, учебники на этом сайте проведут вас через все этапы написания, компиляции и отладки программ на C++ с большим количеством примеров.
#cpp #programming
👉 @cpp_lib
#cpp #programming
👉 @cpp_lib
👍6
Всё про C++ и разработку игр / Интервью с Lead Core Developer World of Tanks Blitz
https://www.youtube.com/watch?v=QQZmDWnV618
00:00 - Начало
01:30 - Про детство и школьные годы и университет
07:33 - РЕКЛАМА
09:35 - Учёба в университете и первая работа
34:40 - Что такое игровой движок
38:03 - Первая игра
38:33 - Работа в стартапе
40:55 - Жесткое выгорание
44:43 - Про работу Wargaming
53:43 - Начало про С++: история, релизы, стандарт
1:01:55 - Про сборку мусора и уровни абстракций
1:06:09 - Зачем нужен C++ если есть C
1:11:50 - Про концепции в C++
1:18:15 - Про название языка
1:18:48 - Что можно писать на C++ и чем он хорош
1:21:20 - Про работу сборщика мусора
1:23:22 - Особенности кодирования на C++
1:25:38 - Про паттерны и недостатки языка
1:32:22 - Популярные библиотеки и фреймворки C++
1:37:20 - Стандартная библиотека C++
1:39:05 - Про ORM и SQL Lite
1:40:30 - Пакетные менеджеры - vcpkg
1:43:26 - ПО для работы на плюсах: IDE, vim, Emacs И другие программы
1:59:05 - Рекомендации по литературы по C++
2:19:40 - Про разработку игр подробнее (gamedev) - из чего состоит игра
2:27:50 - Про особенности разработки крупных игр, сетевое взаимодействие и ключевые особенности
2:38:30 - Разница игр Triple-A и казуальных игр
2:41:10 - Что нужно знать, что бы войти в геймдев: математика, алгоритмы, сети и т.д.
2:49:00 - Совет себе 15 лет назад
2:49:52 - БЛИЦ
#cpp #programming
👉 @cpp_lib
https://www.youtube.com/watch?v=QQZmDWnV618
00:00 - Начало
01:30 - Про детство и школьные годы и университет
07:33 - РЕКЛАМА
09:35 - Учёба в университете и первая работа
34:40 - Что такое игровой движок
38:03 - Первая игра
38:33 - Работа в стартапе
40:55 - Жесткое выгорание
44:43 - Про работу Wargaming
53:43 - Начало про С++: история, релизы, стандарт
1:01:55 - Про сборку мусора и уровни абстракций
1:06:09 - Зачем нужен C++ если есть C
1:11:50 - Про концепции в C++
1:18:15 - Про название языка
1:18:48 - Что можно писать на C++ и чем он хорош
1:21:20 - Про работу сборщика мусора
1:23:22 - Особенности кодирования на C++
1:25:38 - Про паттерны и недостатки языка
1:32:22 - Популярные библиотеки и фреймворки C++
1:37:20 - Стандартная библиотека C++
1:39:05 - Про ORM и SQL Lite
1:40:30 - Пакетные менеджеры - vcpkg
1:43:26 - ПО для работы на плюсах: IDE, vim, Emacs И другие программы
1:59:05 - Рекомендации по литературы по C++
2:19:40 - Про разработку игр подробнее (gamedev) - из чего состоит игра
2:27:50 - Про особенности разработки крупных игр, сетевое взаимодействие и ключевые особенности
2:38:30 - Разница игр Triple-A и казуальных игр
2:41:10 - Что нужно знать, что бы войти в геймдев: математика, алгоритмы, сети и т.д.
2:49:00 - Совет себе 15 лет назад
2:49:52 - БЛИЦ
#cpp #programming
👉 @cpp_lib
YouTube
ЯЗЫК ЯЗЫКОВ! / Всё про C++ и разработку игр / Интервью с Lead Core Developer World of Tanks Blitz
Всё ещё кодишь без AI? Го в клуб "Эволюция Кода 🧬", научу: https://itbeard.com/evocoders
Выпуск про C++. В гостях Lead Core Developer World of Tanks Blitz из компании Wargaming - Леонид Чайка. Мы проговорили без малого три часа, и вам есть что почерпнуть…
Выпуск про C++. В гостях Lead Core Developer World of Tanks Blitz из компании Wargaming - Леонид Чайка. Мы проговорили без малого три часа, и вам есть что почерпнуть…
👍4❤2
Бенчмаркинг Malloc с Doom 3
https://www.forrestthewoods.com/blog/benchmarking-malloc-with-doom3/
#cpp #programming
👉 @cpp_lib
https://www.forrestthewoods.com/blog/benchmarking-malloc-with-doom3/
#cpp #programming
👉 @cpp_lib
👍1
Использование флагов компилятора для защиты стека в GCC и Clang.
https://developers.redhat.com/articles/2022/06/02/use-compiler-flags-stack-protection-gcc-and-clang
#cpp #programming
👉 @cpp_lib
https://developers.redhat.com/articles/2022/06/02/use-compiler-flags-stack-protection-gcc-and-clang
#cpp #programming
👉 @cpp_lib
👍2
Быстрая сортировка с векторизацией и переносимостью производительности.
https://opensource.googleblog.com/2022/06/Vectorized%20and%20performance%20portable%20Quicksort.html
#cpp #programming
👉 @cpp_lib
https://opensource.googleblog.com/2022/06/Vectorized%20and%20performance%20portable%20Quicksort.html
#cpp #programming
👉 @cpp_lib
Google Open Source Blog
Vectorized and performance-portable Quicksort
We're sharing open source code that can sort arrays of numbers about ten times as fast as the C++ std::sort
👍5
Для каких целей применяется ключевое слово const?
Ответ:
1.Позволяет задать константность объекта
2.Позволяет задать константность указателя
3.Позволяет указать, что данный метод не модифицирует члены класса, т.е. сохраняет состояние объекта
Пример 1. Не можем изменить значение объекта:
Пример 2. Не можем изменить указатель на объект:
Пример 3. Не можем изменить члены класса:
Дополнение: константный метод может изменять члены класса, если они объявлены как mutable.
#cpp #programming
👉 @cpp_lib
Ответ:
1.Позволяет задать константность объекта
2.Позволяет задать константность указателя
3.Позволяет указать, что данный метод не модифицирует члены класса, т.е. сохраняет состояние объекта
Пример 1. Не можем изменить значение объекта:
const int i = 1;
i = 2; // error C3892: 'i' : you cannot assign to a variable that is const
Пример 2. Не можем изменить указатель на объект:
int i = 1;
int* const j(&i);
int k = 2;
*j = k; // Ok
j = &k; // error C3892: 'j' : you cannot assign to a variable that is const
Пример 3. Не можем изменить члены класса:
class Foo
{
private:
int i;
public:
void func() const
{
i = 1; // error C3490: 'i' cannot be modified because it is being accessed through a const object
}
};
Дополнение: константный метод может изменять члены класса, если они объявлены как mutable.
#cpp #programming
👉 @cpp_lib
👍6
Пример пузырьковой сортировки, для контейнеров, без временных переменных.
#cpp #programming
👉 @cpp_lib
template <typename T >
void bubble_sort( T &a )
{
for( T::size_type i = 0; a.size() && i < a.size() - 1; ++i )
{
for( T::size_type j = i; j + 1 > 0; --j )
{
if( a[j] > a[j+1] )
std::swap( a[j], a[j+1] );
}
}
}
std::vector<int> v;
v.push_back( 7 );
v.push_back( 1000 );
v.push_back( 134 );
v.push_back( 23 );
v.push_back( 1 );
bubble_sort( v );
#cpp #programming
👉 @cpp_lib
👍5
Сопрограммы в C++: что это значит, когда я объявляю свою сопрограмму как noexcept?
https://devblogs.microsoft.com/oldnewthing/20210426-00/?p=105153
#cpp #programming
👉 @cpp_lib
https://devblogs.microsoft.com/oldnewthing/20210426-00/?p=105153
#cpp #programming
👉 @cpp_lib
Microsoft News
C++ coroutines: What does it mean when I declare my coroutine as noexcept?
The noexcept keyword doesn't mean what you think.
👍2
5 причин, по которым вам следует использовать C++ для цифровой обработки сигналов.
https://dev.to/educative/5-reasons-you-should-use-c-for-digital-signal-processing-1n5p
#cpp #programming
👉 @cpp_lib
https://dev.to/educative/5-reasons-you-should-use-c-for-digital-signal-processing-1n5p
#cpp #programming
👉 @cpp_lib
👍4
CupOfT
CupOfT #1: C++, const and thread-safety
CupOfT #2: C++ and safe raw pointers
CupOfT #3: threads + stateful allocators = ♥
#cpp #programming
👉 @cpp_lib
CupOfT #1: C++, const and thread-safety
CupOfT #2: C++ and safe raw pointers
CupOfT #3: threads + stateful allocators = ♥
#cpp #programming
👉 @cpp_lib
👍2
Media is too big
VIEW IN TELEGRAM
Мое Собеседование С Европейской Компанией. Senior C++ Developer
Привет, Я Дима мне 26 и я программист.
Недавно я прошел 4-й этап собеседований с Польской IT-компанией на позицию Senior C++ Developer.
Этапы были следующие:
1. HR - убедиться, что я адекватный и проверить английский.
2. Технический - теория.
3. Технический - мой бэкграунд и теория.
4. Технический - практика и теория.
#cpp #programming
👉 @cpp_lib
Привет, Я Дима мне 26 и я программист.
Недавно я прошел 4-й этап собеседований с Польской IT-компанией на позицию Senior C++ Developer.
Этапы были следующие:
1. HR - убедиться, что я адекватный и проверить английский.
2. Технический - теория.
3. Технический - мой бэкграунд и теория.
4. Технический - практика и теория.
#cpp #programming
👉 @cpp_lib
👍4👎1💩1
Media is too big
VIEW IN TELEGRAM
STL с нуля | C++
1:24 - заполнение контейнеров.
2:44 - вопрос о передаче параметра в функцию (копия, ссылка, универсальная ссылка).
4:54 - как посмотреть, что генерит компилятор из универсальной ссылки.
8:53 - про рандом.
10:36 - list vs vector.
14:38 - как удалить элемент из std::vector.
16:19 - решение задачи про исчезнувший элемент.
18:11 - обсуждаем сложность алгоритмов.
21:37 - чем хороша STL.
#cpp #programming
👉 @cpp_lib
1:24 - заполнение контейнеров.
2:44 - вопрос о передаче параметра в функцию (копия, ссылка, универсальная ссылка).
4:54 - как посмотреть, что генерит компилятор из универсальной ссылки.
8:53 - про рандом.
10:36 - list vs vector.
14:38 - как удалить элемент из std::vector.
16:19 - решение задачи про исчезнувший элемент.
18:11 - обсуждаем сложность алгоритмов.
21:37 - чем хороша STL.
#cpp #programming
👉 @cpp_lib
👍8
Введение в 30 наиболее важных структур данных и алгоритмов.
Структуры данных и алгоритмы (DSA) часто считаются пугающей темой - это распространенное заблуждение. Являясь основой самых инновационных концепций в области технологий, они необходимы как для соискателей на работу/стажировку, так и для опытных программистов. Владение DSA означает, что вы способны использовать свое вычислительное и алгоритмическое мышление для решения невиданных ранее проблем и способствовать повышению ценности любой технологической компании (включая вашу собственную!). Понимая их, вы сможете улучшить сопровождаемость, расширяемость и эффективность своего кода. Далее
#cpp #programming
👉 @cpp_lib
Структуры данных и алгоритмы (DSA) часто считаются пугающей темой - это распространенное заблуждение. Являясь основой самых инновационных концепций в области технологий, они необходимы как для соискателей на работу/стажировку, так и для опытных программистов. Владение DSA означает, что вы способны использовать свое вычислительное и алгоритмическое мышление для решения невиданных ранее проблем и способствовать повышению ценности любой технологической компании (включая вашу собственную!). Понимая их, вы сможете улучшить сопровождаемость, расширяемость и эффективность своего кода. Далее
#cpp #programming
👉 @cpp_lib
👍5
Параллелизм на уровне инструкций на практике: ускорение программ, привязанных к памяти, с низким ILP.
https://johnysswlab.com/instruction-level-parallelism-in-practice-speeding-up-memory-bound-programs-with-low-ilp/
#cpp #programming
👉 @cpp_lib
https://johnysswlab.com/instruction-level-parallelism-in-practice-speeding-up-memory-bound-programs-with-low-ilp/
#cpp #programming
👉 @cpp_lib
👍2
std::string класс в C++
Класс string хранит символы как последовательность байтов с возможностью доступа к каждому символу. Рассмотрим три простые функции:
1. getline() - функция используется для помещения потока символов, введенных пользователем, в память объекта.
2. push_back() - функция используется для добавления символа в конец строки.
3. pop_back() - введенная в C++11 (для строк), эта функция используется для удаления последнего символа из строки.
#cpp #programming
👉 @cpp_lib
Класс string хранит символы как последовательность байтов с возможностью доступа к каждому символу. Рассмотрим три простые функции:
1. getline() - функция используется для помещения потока символов, введенных пользователем, в память объекта.
2. push_back() - функция используется для добавления символа в конец строки.
3. pop_back() - введенная в C++11 (для строк), эта функция используется для удаления последнего символа из строки.
#cpp #programming
👉 @cpp_lib
👍10
Media is too big
VIEW IN TELEGRAM
Алексей Малов. Как современные возможности C++ облегчают повседневную разработку
В докладе проиллюстрированы возможности современного C++, которые мы применяем в production-коде.
- Контейнеры, диапазоны, алгоритмы
- Смарт-пойнтеры, optional, variant
- Поддержка функциональной парадигмы программирования
#cpp #programming
👉 @cpp_lib
В докладе проиллюстрированы возможности современного C++, которые мы применяем в production-коде.
- Контейнеры, диапазоны, алгоритмы
- Смарт-пойнтеры, optional, variant
- Поддержка функциональной парадигмы программирования
#cpp #programming
👉 @cpp_lib
👍6
Шпаргалка по C++
Эта статья даёт сжатый обзор основ современного C++. Шпаргалка фокусируется на языке, а не стандартной библиотеке, и учитывает особенности C++11/C++14
#cpp #programming
👉 @cpp_lib
Эта статья даёт сжатый обзор основ современного C++. Шпаргалка фокусируется на языке, а не стандартной библиотеке, и учитывает особенности C++11/C++14
#cpp #programming
👉 @cpp_lib
👍7😁1
Инициализирующий конструктор выглядит как присваивание, но это не так.
https://devblogs.microsoft.com/oldnewthing/20210628-00/?p=105374
#cpp #programming
👉 @cpp_lib
https://devblogs.microsoft.com/oldnewthing/20210628-00/?p=105374
#cpp #programming
👉 @cpp_lib
Microsoft News
The initializing constructor looks like an assignment, but it isn’t
There is no assignment going on; it's just a quirk of syntax.
👍3