#Вопросы_с_собеседования
Что лучше const или define?
Ответ:
define - это директива препроцессора, которая не учитывает ни типов, ни областей видимости. Препроцессор вставляет значение везде, где оно используется и создается множество копий 3.14159265359 в объектном коде, константа никогда не порождает больше одной копии этого значения. define трудно отлаживать, потому что у него нет имени, только магическое число, нельзя взять адрес или создать ссылку на это значение.
У const есть тип, область видимости, можно взять адрес, создать константную ссылку на эту переменную.
Определенно, лучше использовать const, а не define.
@cpluspluc
Что лучше const или define?
Ответ:
У const есть тип, область видимости, можно взять адрес, создать константную ссылку на эту переменную.
Определенно, лучше использовать const, а не define.
@cpluspluc
👍19❤3🔥2
Reddit для С и С++ программистов
r/C_programming 135k
Спрашивай совета, если проблемы с кодом, помогай другим в комментариях, читай полезные статьи, которыми делятся другие участники сообщества. Сабреддит довольно активный и имеет 135k подписчиков. И это, пожалуй, единственный сабреддит, который я упомяну для С программистов. Но не переживайте, ниже ещё будет очень много всего, что я надеюсь, сможет вас заинтересовать.
r/Cpp 238k
Самый популярный сабреддит среди С++ программистов. Здесь обсуждают всё: от выступлений на известных С++ конференциях до лучших практик. Истинные фанаты С++ оценят по достоинству.
r/Cplusplus 32,8k
Менее активный сабреддит, однако не менее познавательный. Обсуждают больше нюансы программирования на С++.
r/LearnCpp 3,9k
Подходит как новичкам, так и экспертам. Этот сабреддит предназначен для обмена исходным кодом. Изучайте исходный код, чтобы лучше почувствовать и понять, как работает C++. Самый лучший способ обучения — это практика.
r/Cpp_questions 61,4k
Спрашивайте у экспертов и помогайте новичкам. Сабреддит для вопросов и ответов. Обсуждение IDE, кода, приложений и т.п.
#cpp #programming
@cpluspluc
r/C_programming 135k
Спрашивай совета, если проблемы с кодом, помогай другим в комментариях, читай полезные статьи, которыми делятся другие участники сообщества. Сабреддит довольно активный и имеет 135k подписчиков. И это, пожалуй, единственный сабреддит, который я упомяну для С программистов. Но не переживайте, ниже ещё будет очень много всего, что я надеюсь, сможет вас заинтересовать.
r/Cpp 238k
Самый популярный сабреддит среди С++ программистов. Здесь обсуждают всё: от выступлений на известных С++ конференциях до лучших практик. Истинные фанаты С++ оценят по достоинству.
r/Cplusplus 32,8k
Менее активный сабреддит, однако не менее познавательный. Обсуждают больше нюансы программирования на С++.
r/LearnCpp 3,9k
Подходит как новичкам, так и экспертам. Этот сабреддит предназначен для обмена исходным кодом. Изучайте исходный код, чтобы лучше почувствовать и понять, как работает C++. Самый лучший способ обучения — это практика.
r/Cpp_questions 61,4k
Спрашивайте у экспертов и помогайте новичкам. Сабреддит для вопросов и ответов. Обсуждение IDE, кода, приложений и т.п.
#cpp #programming
@cpluspluc
👍6❤1🔥1
Видео: безопасное копирование, перемещение и уничтожение объектов в современном C++ по правилу «все или ничего».
https://youtu.be/una89pkP9ms
https://youtu.be/una89pkP9ms
YouTube
Safely copying, moving, and destroying objects in Modern C++ with the rule of "all or nothing"
*Help me keep doing these videos!*
This works relies on *your* support! You can show it in one of these ways:
📚 Start a FREE Audible trial: https://www.audibletrial.com/CodeForYourself
🛍️ Buy gear I use to make this video: https://github.com/cpp-for-you…
This works relies on *your* support! You can show it in one of these ways:
📚 Start a FREE Audible trial: https://www.audibletrial.com/CodeForYourself
🛍️ Buy gear I use to make this video: https://github.com/cpp-for-you…
👍6❤1🔥1
Как работают сортировки
В ролике разбирается сортировка пузырьком (которую учит каждый новичок), выбором, ставками, Хоара, Ломуто с примерами на C++.
Также здесь сравниваются разные виды сортировок за звание лучшего и самого быстрого алгоритма.
https://youtube.com/watch?v=PF7AqefS4MU
В ролике разбирается сортировка пузырьком (которую учит каждый новичок), выбором, ставками, Хоара, Ломуто с примерами на C++.
Также здесь сравниваются разные виды сортировок за звание лучшего и самого быстрого алгоритма.
https://youtube.com/watch?v=PF7AqefS4MU
YouTube
КАК РАБОТАЮТ СОРТИРОВКИ | АЛГОРИТМЫ
https://clck.ru/32rrRX – освойте навыковый курс «SQL для работы с данными и аналитики» в Яндекс Практикуме. Промокод «ALEK» на скидку 5% до 24 декабря.
Регистрируйтесь и создавайте надёжный кластер Облачных баз данных в Selectel с экономией в 30%: https://slc.tl/m962k…
Регистрируйтесь и создавайте надёжный кластер Облачных баз данных в Selectel с экономией в 30%: https://slc.tl/m962k…
❤5🔥3👍2
Как отлаживать лямбда-выражения C++ с помощью GDB.
https://developers.redhat.com/articles/2023/05/03/how-debug-c-lambda-expressions-gdb
https://developers.redhat.com/articles/2023/05/03/how-debug-c-lambda-expressions-gdb
Red Hat Developer
How to debug C++ lambda expressions with GDB | Red Hat Developer
Modern versions of the C++ programming language have a feature known as lambda expressions. This article shows how you can debug lambda expressions using GDB, the GNU Project Debugger. Even if you're
🔥4❤2👍1
Бесплатные курсы по программированию C++
▪Программирование на языке C++(Stepik)
В курсе будет рассмотрено множество различных возможностей языка, и в том числе мы поговорим о нововведениях стандартов C++11 и C++14, стандартной библиотеке шаблонов и обработке ошибок.
▪Введение в программирование (C++)
Основы программирования на C++ на примере множества несложных практических задач.
▪Программирование на языке C++
Данный базовый курс повествует об основных средствах языка C++. Особое внимание уделяется обсуждению базовых принципов работы программ, а также процессу их компиляции. Курс далеко не исчерпывающий и покрывает лишь небольшую часть стандарта языка C++, однако мы постарались рассказать о наиболее важных возможностях этого языка.
▪Многопоточное программирование на С/С++
В курсе принцип многопоточного программирования рассматривается в контексте разработки сетевых и высоконагруженных систем. Ядром курса является обучение межпроцессному взаимодействию (IPC) и синхронизации потоков.
@cpluspluc
▪Программирование на языке C++(Stepik)
В курсе будет рассмотрено множество различных возможностей языка, и в том числе мы поговорим о нововведениях стандартов C++11 и C++14, стандартной библиотеке шаблонов и обработке ошибок.
▪Введение в программирование (C++)
Основы программирования на C++ на примере множества несложных практических задач.
▪Программирование на языке C++
Данный базовый курс повествует об основных средствах языка C++. Особое внимание уделяется обсуждению базовых принципов работы программ, а также процессу их компиляции. Курс далеко не исчерпывающий и покрывает лишь небольшую часть стандарта языка C++, однако мы постарались рассказать о наиболее важных возможностях этого языка.
▪Многопоточное программирование на С/С++
В курсе принцип многопоточного программирования рассматривается в контексте разработки сетевых и высоконагруженных систем. Ядром курса является обучение межпроцессному взаимодействию (IPC) и синхронизации потоков.
@cpluspluc
👍8🔥3❤2🤬1
Видеокурс C++ для начинающих
Если давно хотели изучить «плюсы», то этот курс то, что вам нужно. Здесь вы найдёте 200 уроков, которые специально сделаны достаточно короткими, чтобы вы могли их изучить, осмыслить и не устать.
Сохраняйте себе в закладки и начинайте заниматься:
https://www.youtube.com/watch?v=kRcbYLK3OnQ&list=PLQOaTSbfxUtCrKs0nicOg2npJQYSPGO9r
#видео #cpp
Если давно хотели изучить «плюсы», то этот курс то, что вам нужно. Здесь вы найдёте 200 уроков, которые специально сделаны достаточно короткими, чтобы вы могли их изучить, осмыслить и не устать.
Сохраняйте себе в закладки и начинайте заниматься:
https://www.youtube.com/watch?v=kRcbYLK3OnQ&list=PLQOaTSbfxUtCrKs0nicOg2npJQYSPGO9r
#видео #cpp
🔥17❤4👍2
10 лучших идей C++ проекта для начинающих
Как вам помогут эти проекты?
Чтобы попрактиковаться в изучении C++, вы можете выполнять множество проектов от простого до продвинутого. Каждый из этих проектов научит вас чему-то новому, чтобы вы были знакомы с наиболее важными темами, которые всегда будут вам полезны при создании реальных проектов.
Для работы над этими проектами вам необходимо установить IDE. Вы можете скачать бесплатную версию Visual Studio с официального сайта Microsoft . Также можно использовать Code::Blocks скачав с их официального сайта.
▪ Читать
@cpluspluc
Как вам помогут эти проекты?
Чтобы попрактиковаться в изучении C++, вы можете выполнять множество проектов от простого до продвинутого. Каждый из этих проектов научит вас чему-то новому, чтобы вы были знакомы с наиболее важными темами, которые всегда будут вам полезны при создании реальных проектов.
Для работы над этими проектами вам необходимо установить IDE. Вы можете скачать бесплатную версию Visual Studio с официального сайта Microsoft . Также можно использовать Code::Blocks скачав с их официального сайта.
▪ Читать
@cpluspluc
👍15🔥3❤1
Media is too big
VIEW IN TELEGRAM
🎮 Подробный разбор кода игры Super Mario на языке C++ (9 шагов по созданию игры)
00:00 Введение
00:17 Шаг 1: Создание игрока
01:48 Шаг 2: Создание платформера
07:03 Шаг 3: Создание флажка
08:26 Шаг 4: Поставить изображение frend
08:57 Шаг 5: Добавления надписей для уровня
11:25 Шаг 6: Добавления врагов
16:45 Шаг 7: Добавление урона и возрождение игрока
19:13 Шаг 8: Добавление меню
23:31 Шаг 9: Добавление музыки и звуки
26:43 Игра готова
▪Ссылка на код
▪Ссылки на медиадля игры
📌 Источник
#cpp #programming
@cpluspluc
00:00 Введение
00:17 Шаг 1: Создание игрока
01:48 Шаг 2: Создание платформера
07:03 Шаг 3: Создание флажка
08:26 Шаг 4: Поставить изображение frend
08:57 Шаг 5: Добавления надписей для уровня
11:25 Шаг 6: Добавления врагов
16:45 Шаг 7: Добавление урона и возрождение игрока
19:13 Шаг 8: Добавление меню
23:31 Шаг 9: Добавление музыки и звуки
26:43 Игра готова
▪Ссылка на код
▪Ссылки на медиадля игры
📌 Источник
#cpp #programming
@cpluspluc
👍19🔥6❤4👎1
#include <iostream>
#include <type_traits>
using namespace std;
int main()
{
int i, &j = i;
[=]
{
cout << is_same<decltype ((j)), int >::value
<< is_same<decltype (((j))), int & >::value
<< is_same<decltype ((((j)))), int const& >::value
<< is_same<decltype (((((j))))), int && >::value
<< is_same<decltype((((((j)))))), int const&& >::value;
}();
}
@cpluspluc
👍14🔥1👏1
👍12🔥8🤣4❤1
🔥 Собрали для вас подборку ресурсов для подготовки к С++ собеседованию.
▪300+ вопросов с собеседований по C++
▪Публичное System Design Interview на конференции C++ Russia 2022
▪1000+ Вопросов и ответы с множественным выбором на C++ с пояснениями
▪200 C++ вопросов и ответов на собеседовании
▪24 Essential C++ Interview Questions from Toptal
▪C++ Вопросы для интервью от GeekInterview
▪C++ Programming Q&A and quizzes from computer science portal for geeks
▪C++ Вопросы и ответы по программированию, связанные с такими темами, как концепции ООП, объект и классы, функции, конструкторы и деструкторы, наследование и т.д.
@cpluspluc
▪300+ вопросов с собеседований по C++
▪Публичное System Design Interview на конференции C++ Russia 2022
▪1000+ Вопросов и ответы с множественным выбором на C++ с пояснениями
▪200 C++ вопросов и ответов на собеседовании
▪24 Essential C++ Interview Questions from Toptal
▪C++ Вопросы для интервью от GeekInterview
▪C++ Programming Q&A and quizzes from computer science portal for geeks
▪C++ Вопросы и ответы по программированию, связанные с такими темами, как концепции ООП, объект и классы, функции, конструкторы и деструкторы, наследование и т.д.
@cpluspluc
👍17❤4🔥3
📌 7 бесплатных курсов по С++
1. Введение в программирование (C++) - Stepik (BEG)
2. Основы разработки на С++: белый пояс - Шишков Илья Иванович, Парамонов Евгений Анатольевич, Полднев Антон Вячеславович, Лежанкин Иван Андреевич (Coursera) (INT)
3. Специализация Coding for Everyone: C and C++ - Учитесь кодингу на C и C++. Получите глубокое понимание программирования, научившись писаь код, отлаживать и решать сложные задачи на языках C и C++.
4. Специализация Accelerated Computer Science Fundamentals - Структуры данных и алгоритмы в C++. Изучите основы информатики, реализуя структуры данных на C++.
5. Object-Oriented Data Structures in C++ (Coursera) (INT)
6. Основы С++ и основы UE4 - Начало изучения C++(Udemy)
7. Уроки по С++ - Ravesli (INT)
@cpluspluc
1. Введение в программирование (C++) - Stepik (BEG)
2. Основы разработки на С++: белый пояс - Шишков Илья Иванович, Парамонов Евгений Анатольевич, Полднев Антон Вячеславович, Лежанкин Иван Андреевич (Coursera) (INT)
3. Специализация Coding for Everyone: C and C++ - Учитесь кодингу на C и C++. Получите глубокое понимание программирования, научившись писаь код, отлаживать и решать сложные задачи на языках C и C++.
4. Специализация Accelerated Computer Science Fundamentals - Структуры данных и алгоритмы в C++. Изучите основы информатики, реализуя структуры данных на C++.
5. Object-Oriented Data Structures in C++ (Coursera) (INT)
6. Основы С++ и основы UE4 - Начало изучения C++(Udemy)
7. Уроки по С++ - Ravesli (INT)
@cpluspluc
👍11🔥4🤔2❤1
⚡ Наглядная шпаргалка по основным темам в области Backend-разработки
Весь материал разбит на главы, которые включают в себя разные темы. В каждой теме можно выделить три основные части:
▪Визуальная часть - различные изображения/таблицы/шпаргалки для лучшего понимания (может отсутствовать). Все рисунки и таблицы сделаны с нуля, специально для этого репозитория.
▪Краткое описание - очень краткая выжимка информации с перечнем основных терминов и понятий. На термины навешиваются гиперссылки ведущие на соответствующий раздел в Википедии или подобном справочном ресурсе.
▪Ссылки на источники - ресурсы, где можно найти полную информацию по конкретному вопросу (они скрыты под спойлером, который раскрывается при нажатии). По возможности, указываются максимально авторитетные источники, либо же те, которые предоставляют информацию максимально простым и понятным языком.
▪Github
@cpluspluc
Весь материал разбит на главы, которые включают в себя разные темы. В каждой теме можно выделить три основные части:
▪Визуальная часть - различные изображения/таблицы/шпаргалки для лучшего понимания (может отсутствовать). Все рисунки и таблицы сделаны с нуля, специально для этого репозитория.
▪Краткое описание - очень краткая выжимка информации с перечнем основных терминов и понятий. На термины навешиваются гиперссылки ведущие на соответствующий раздел в Википедии или подобном справочном ресурсе.
▪Ссылки на источники - ресурсы, где можно найти полную информацию по конкретному вопросу (они скрыты под спойлером, который раскрывается при нажатии). По возможности, указываются максимально авторитетные источники, либо же те, которые предоставляют информацию максимально простым и понятным языком.
▪Github
@cpluspluc
🔥6❤2👍2🍓1
🛠 Полезные библиотеки С++
Armadillo - быстрая библиотека C++ для линейной алгебры и научных вычислений.
🖥 Github
@cpluspluc
Armadillo - быстрая библиотека C++ для линейной алгебры и научных вычислений.
@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥6❤3
💡Задача: "Матрица спирали"
Условие задачи: дан двумерный массив, надо вернуть все его элементы в "спиральном" порядке по часовой стрелке.
Пример:
Ввод: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Вывод: [1,2,3,6,9,8,7,4,5]
Ввод: matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
Вывод: [1,2,3,4,8,12,11,10,9,5,6,7]
📌Решение
Пишите свое решение в комментариях👇
@cpluspluc
Условие задачи: дан двумерный массив, надо вернуть все его элементы в "спиральном" порядке по часовой стрелке.
Пример:
Ввод: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Вывод: [1,2,3,6,9,8,7,4,5]
Ввод: matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
Вывод: [1,2,3,4,8,12,11,10,9,5,6,7]
📌Решение
Пишите свое решение в комментариях👇
@cpluspluc
👍9🔥4❤2🤔1
🔥 13 ресурсов для C++ разработчиков , которые помогут закрепить теорию и поупражняться в программировании
1. Hacking C++ - это наглядный справочник с картинками и инфографикой, который содержит подробное руководство по изучению языка для новичков.
2. Академия Яндекса предоставляет бесплатный онлайн-учебник по С++, который рассчитан на новичков, имеющих знания в области информатики и владеющих любым языком программирования на школьном уровне. Хендбук содержит теорию и практические задачи, решения которых проверяются автоматически. Вы можете изучать материал последовательно или выборочно по главам в своем времени.
3. CodeRun - это онлайн-тренажер с каталогом задач для разработчиков, на котором эксперты Яндекса и приглашенные специалисты собрали задачи с различных мероприятий. Задачи разбиты по темам и уровням сложности.
4. The C++ Asynchronous Framework - это современный асинхронный фреймворк с открытым исходным кодом и богатым набором абстракций для быстрого и удобного создания микросервисов, сервисов и утилит.
5. Комьюнити Stack Overflow - это платформа, на которой собрана огромная коллекция вопросов и ответов по программированию, где участники сообщества активно делятся опытом со своими коллегами.
6. Сайт Standard C++ Foundation - это ресурс, на котором публикуются новости, обсуждение стандарта C++ для всех компиляторов и платформ, а также анонсы тематических конференций.
7. Онлайн-документация по С++ - это справочник на английском языке по языкам C, C++ и стандартным библиотекам с подробными примерами, а также адаптированная версия сайта для пользователей, которые предпочитают учиться на русском языке.
8. Гайдлайны С++ Core Guidelines - это open-source проект от создателя С++ Бьярне Страуструпа и эксперта по C++ Герба Саттера. На сайте публикуются рекомендации, которые помогают разобраться с синтаксисом языка и упростить процесс написания кода.
9. Онлайн-компилятор Compiler Explorer - это интерактивный инструмент, который позволяет набирать код и сразу просматривать ассемблерный вывод. Результаты проверки можно поделиться с друзьями и коллегами, отправив им ссылку.
10. #SimpleCode - это YouTube-канал, который познакомит вас с программированием на разных языках, в том числе и на C++. Этот ресурс будет полезен разработчикам с любым бэкграундом.
11. ProgrammingKnowledge - это еще один YouTube-канал для начинающих программистов, на котором можно найти много пошаговых видеоуроков по разным языкам.
12. Codeforces - это платформа для создания, проведения и обсуждения соревнований по программированию с элементами соцсети.
13. Codewars - это огромная подборка задач на более чем 20 языках программирования, где вы можете обсудить задачи с другими игроками и посмотреть альтернативные решения.
👍 Сохраняйте и делитесь с коллегами, чтобы не потерять.
@cpluspluc
1. Hacking C++ - это наглядный справочник с картинками и инфографикой, который содержит подробное руководство по изучению языка для новичков.
2. Академия Яндекса предоставляет бесплатный онлайн-учебник по С++, который рассчитан на новичков, имеющих знания в области информатики и владеющих любым языком программирования на школьном уровне. Хендбук содержит теорию и практические задачи, решения которых проверяются автоматически. Вы можете изучать материал последовательно или выборочно по главам в своем времени.
3. CodeRun - это онлайн-тренажер с каталогом задач для разработчиков, на котором эксперты Яндекса и приглашенные специалисты собрали задачи с различных мероприятий. Задачи разбиты по темам и уровням сложности.
4. The C++ Asynchronous Framework - это современный асинхронный фреймворк с открытым исходным кодом и богатым набором абстракций для быстрого и удобного создания микросервисов, сервисов и утилит.
5. Комьюнити Stack Overflow - это платформа, на которой собрана огромная коллекция вопросов и ответов по программированию, где участники сообщества активно делятся опытом со своими коллегами.
6. Сайт Standard C++ Foundation - это ресурс, на котором публикуются новости, обсуждение стандарта C++ для всех компиляторов и платформ, а также анонсы тематических конференций.
7. Онлайн-документация по С++ - это справочник на английском языке по языкам C, C++ и стандартным библиотекам с подробными примерами, а также адаптированная версия сайта для пользователей, которые предпочитают учиться на русском языке.
8. Гайдлайны С++ Core Guidelines - это open-source проект от создателя С++ Бьярне Страуструпа и эксперта по C++ Герба Саттера. На сайте публикуются рекомендации, которые помогают разобраться с синтаксисом языка и упростить процесс написания кода.
9. Онлайн-компилятор Compiler Explorer - это интерактивный инструмент, который позволяет набирать код и сразу просматривать ассемблерный вывод. Результаты проверки можно поделиться с друзьями и коллегами, отправив им ссылку.
10. #SimpleCode - это YouTube-канал, который познакомит вас с программированием на разных языках, в том числе и на C++. Этот ресурс будет полезен разработчикам с любым бэкграундом.
11. ProgrammingKnowledge - это еще один YouTube-канал для начинающих программистов, на котором можно найти много пошаговых видеоуроков по разным языкам.
12. Codeforces - это платформа для создания, проведения и обсуждения соревнований по программированию с элементами соцсети.
13. Codewars - это огромная подборка задач на более чем 20 языках программирования, где вы можете обсудить задачи с другими игроками и посмотреть альтернативные решения.
👍 Сохраняйте и делитесь с коллегами, чтобы не потерять.
@cpluspluc
👍18❤5🔥3
💡Задача: Игра в прыжки
Условие: Дан целочисленный массив nums. Изначально вы находитесь в первом индексе массива, и каждый элемент массива представляет максимальную длину прыжка в этой позиции.
Верните true, если вы можете добраться до последнего индекса, или false в противном случае.
Пример:
Ввод: nums = [1,3,1,1,4]
Вывод: true
Объяснение: Переходим на 1 шаг от индекса 0 к 1, затем на 3 шага к последнему индексу.
Ввод: nums = [3,2,1,0,4]
Вывод: false
Решение:
Временное решение: O(N)
Пространственное решение: O(1)
Пишите свое решение в комментариях👇
@cpluspluc
Условие: Дан целочисленный массив nums. Изначально вы находитесь в первом индексе массива, и каждый элемент массива представляет максимальную длину прыжка в этой позиции.
Верните true, если вы можете добраться до последнего индекса, или false в противном случае.
Пример:
Ввод: nums = [1,3,1,1,4]
Вывод: true
Объяснение: Переходим на 1 шаг от индекса 0 к 1, затем на 3 шага к последнему индексу.
Ввод: nums = [3,2,1,0,4]
Вывод: false
Решение:
class Solution {
public:
bool canJump(vector<int>& nums) {
int n = nums.size();
int maxReach = 0;
for (int i = 0; i < n; i++) {
if (i > maxReach) return false;
maxReach = max(maxReach, i + nums[i]);
}
return true;
}
};
Временное решение: O(N)
Пространственное решение: O(1)
Пишите свое решение в комментариях👇
@cpluspluc
👍7❤3🔥2