Course Summary
This course teaches the basics of C++ programming language, including object-oriented programming concepts and data structures.Key Learning Points
- Learn the fundamentals of C++ programming language
- Understand object-oriented programming concepts
- Explore data structures and algorithms
Job Positions & Salaries of people who have taken this course might have
- USA: $88,000
- India: ₹6,50,000
- Spain: €33,000
- USA: $88,000
- India: ₹6,50,000
- Spain: €33,000
- USA: $72,000
- India: ₹5,00,000
- Spain: €28,000
- USA: $88,000
- India: ₹6,50,000
- Spain: €33,000
- USA: $72,000
- India: ₹5,00,000
- Spain: €28,000
- USA: $65,000
- India: ₹4,50,000
- Spain: €25,000
Related Topics for further study
Learning Outcomes
- Develop a strong foundation in C++ programming language
- Understand object-oriented programming concepts and their applications
- Learn to implement various data structures and algorithms
Prerequisites or good to have knowledge before taking this course
- Basic knowledge of programming concepts
- Familiarity with any programming language
Course Difficulty Level
BeginnerCourse Format
- Online
- Self-paced
Similar Courses
- C++ For C Programmers, Part A
- C++ For C Programmers, Part B
Related Education Paths
Notable People in This Field
- C++ Expert
- C++ Expert
Related Books
Description
Этот курс является продолжением курса "Основы разработки на C++: жёлтый пояс". Основная цель курса — научить писать на С++ эффективный код. Кроме того рассмотрены некоторые возможности С++, которые не попали в предыдущие курсы.
Outline
- Макросы и шаблоны классов
- Что вас ждет?
- Введение в макросы
- Оператор #
- Макросы __FILE__ и __LINE__
- Тёмная сторона макросов
- Введение в шаблоны классов
- Интеграция пользовательского класса в цикл for
- Разница между шаблоном и классом
- Вывод типов в шаблонах классов 1
- Вывод типов в шаблонах классов 2
- Автоматический вывод типа, возвращаемого функцией
- Как всё устроено и зачем
- План специализации "Искусство разработки на современном C++"
- Где задать вопрос: telegram, forum
- Решение задачи «Максимальный элемент по предикату»
- Обновлённый test_runner.h
- Решение задачи «Макрос LOG»
- Решение задачи «Генератор компараторов»
- Решение задачи «Макрос UPDATE_FIELD»
- Решение задачи «Плохой макрос»
- Решение задачи «Макрос UNIQ_ID»
- Решение задачи «Таблица»
- Решение задачи «Дек на основе двух векторов»
- Решение задачи «Paginator»
- Конспект
- Макросы
- Введение в шаблоны классов
- Автоматический вывод шаблонных типов
- Принципы оптимизации кода, сложность алгоритмов и эффективное использование ввода/вывода
- Первое правило оптимизации кода
- Второе правило оптимизации кода
- Разработка своего профайлера
- Совершенствование своего профайлера
- Буферизация в выходных потоках
- Производительность потоков вывода
- Когда стоит использовать endl, а когда — \n
- Связанность потоков
- Итоги раздела - Эффективное использование потоков ввода-вывода
- Введение в сложность алгоритмов
- Оценка сложности
- Практические применения
- Амортизированная сложность
- profile.h
- Решение задачи «Сортировка студентов»
- Решение задачи «Изучение нового языка»
- Решение задачи «Экспрессы»
- Решение задачи «Электронная книга»
- Решение задачи «Система бронирования отелей»
- Конспект
- Сложность решений задачи «Экспрессы»
- Модель памяти в C++
- Введение в модель памяти: стек
- Введение в модель памяти: куча
- Оператор new
- Оператор delete
- new и delete для объектов классовых типов
- Операторы new[] и delete[]
- Введение в арифметику указателей
- Добавляем в вектор begin и end
- Добавляем в вектор begin и end 2
- Константный указатель и указатель на константу
- Итоги раздела - Модель памяти
- Решение задачи «Пул объектов»
- Решение задачи «Swap, SortPointers, ReversedCopy»
- Решение задачи «Пишем свой вектор»
- Решение задачи «Односвязный список»
- Конспект
- Эффективное использование линейных контейнеров
- Эффективное использование вектора
- Инвалидация ссылок
- Эффективное использование дека
- Инвалидация итераторов
- Контейнер list
- Преимущества списка
- Неинвалидация итераторов списка
- Контейнер array
- Внутреннее устройство массива
- Класс string_view
- Удобное использование string_view
- Безопасное использование string_view
- Класс StringSet
- Решение задачи «Спортсмены»
- Решение задачи «StackVector»
- Решение задачи Translator
- Решение задачи AirportCounter
- Решение задачи «Текстовый редактор»
- Решение задачи «Статистика web-сервера»
- Конспект
- Вектор и дек
- Списки
- Массивы и string_view
- Move-семантика и базовая многопоточность
- Перемещение временных объектов
- Перемещение в других ситуациях
- Функция move
- Использование функции move при разбиении на слова
- Когда перемещение не помогает
- Конструктор копирования и оператор присваивания
- Конструктор перемещения и перемещающий оператор присваивания
- Передача параметра по значению
- Перемещение в стандартной библиотеке
- Move-итераторы
- Некопируемые типы
- NRVO и copy elision
- Опасности return
- Введение в многопоточность
- async и future
- Задача генерации и суммирования матрицы
- Особенности шаблона future
- Накладные расходы от вызова async
- Состояние гонки
- mutex и lock_guard
, которого нет - Решение задачи «Считалка Иосифа»
- Решение задачи «Группировка строк»
- Решение задачи «Оператор присваивания для SimpleVector»
- Решение задачи «Разбиение на предложения»
- Решение задачи «Move-семантика в SimpleVector»
- Решение задачи «Сортировка слиянием — 3»
- Решение задачи «Контейнер с приоритетами»
- Как компилировать примеры и задачи из этого урока
- Решение задачи «Суммирование матрицы»
- Решение задачи «Исследование блогов»
- Решение задачи «Шаблон Synchronized»
- Решение задачи «ConcurrentMap»
- Конспект
- Перемещение и функция move
- Перемещение в стандартной библиотеке
- Move-итераторы, copy elision и NRVO
- Финальная задача
- Решение задачи «Поисковая система»
- Станьте ментором курса!
Summary of User Reviews
Learn C++ programming language with the C++ Red course on Coursera. Students loved the comprehensive curriculum and engaging instructors.Key Aspect Users Liked About This Course
Comprehensive curriculumPros from User Reviews
- Engaging instructors who explain difficult concepts clearly
- Hands-on programming assignments that reinforce learning
- Comprehensive curriculum covers all essential C++ topics
Cons from User Reviews
- Some users felt the pace was too fast for beginners
- Course materials could be more organized
- Limited interaction with other students