💥 Весь октябрь -40% на курсы для разработчиков в proglib.academy
Бери знания под свой стек:
Python | алгоритмы | математика для Data Science | архитектура кода.
⚡️ Пока скидка действует, апдейтни свои навыки
Бери знания под свой стек:
Python | алгоритмы | математика для Data Science | архитектура кода.
Пока одни ждут «идеальный момент», другие просто учатся.
А потом берут ваши офферы.
⚡️ Пока скидка действует, апдейтни свои навыки
😁1
🎲 std::random vs rand() — генерация случайных чисел
Старый
❌ Старый подход:
🍒 Современный подход:
✏️ Доступные распределения:
• uniform_int_distribution — целые числа
• uniform_real_distribution — вещественные
• normal_distribution — гауссово
• bernoulli_distribution — булево
• exponential_distribution, poisson_distribution и другие
Библиотека C/C++ разработчика
#буст
Старый
rand()
из Си имеет множество проблем: плохое качество, ограниченный диапазон, глобальное состояние. В C++11
появились современные генераторы из <random>
.#include <cstdlib>
#include <ctime>
srand(time(nullptr)); // Предсказуемо!
int dice = rand() % 6 + 1; // Неравномерное распределение!
double prob = rand() / (double)RAND_MAX; // Плохая точность
#include <random>
// Инициализация генератора (один раз)
std::random_device rd;
std::mt19937 gen(rd()); // Mersenne Twister
// Равномерное распределение [1, 6]
std::uniform_int_distribution dice(1, 6);
int roll = dice(gen);
// Вещественное [0.0, 1.0)
std::uniform_real_distribution prob(0.0, 1.0);
double p = prob(gen);
// Нормальное распределение
std::normal_distribution normal(0.0, 1.0);
double value = normal(gen);
• uniform_int_distribution — целые числа
• uniform_real_distribution — вещественные
• normal_distribution — гауссово
• bernoulli_distribution — булево
• exponential_distribution, poisson_distribution и другие
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥6🌚2👾1
🦀 Транспиляция кода: от одного языка к другому
Представьте ситуацию: вы нашли идеальное решение на GitHub, но оно написано не на том языке. Или ваш руководитель прочитал статью о новом фреймворке, и теперь нужно переписывать всю кодовую базу. Знакомо?
Хорошая новость: современные LLM-модели отлично справляются с транспиляцией кода между языками программирования.
✏️ Промпт
🍴 Пример использования
Результат:
Библиотека C/C++ разработчика
#буст
Представьте ситуацию: вы нашли идеальное решение на GitHub, но оно написано не на том языке. Или ваш руководитель прочитал статью о новом фреймворке, и теперь нужно переписывать всю кодовую базу. Знакомо?
Хорошая новость: современные LLM-модели отлично справляются с транспиляцией кода между языками программирования.
Rewrite the following code in C++:
[Вставь свой код сюда]
# Исходный Python код
def count_words(text):
"""Count word frequency in text"""
words = text.lower().split()
freq = {}
for word in words:
freq[word] = freq.get(word, 0) + 1
return freq
# Пример использования
text = "hello world hello python world"
print(count_words(text))
# Output: {'hello': 2, 'world': 2, 'python': 1}
Результат:
#include <iostream>
#include <string>
#include <map>
#include <sstream>
#include <algorithm>
std::map<std::string, int> count_words(const std::string& text) {
std::map<std::string, int> freq;
std::istringstream stream(text);
std::string word;
while (stream >> word) {
// Convert to lowercase
std::transform(word.begin(), word.end(), word.begin(), ::tolower);
freq[word]++;
}
return freq;
}
int main() {
std::string text = "hello world hello python world";
auto result = count_words(text);
for (const auto& [word, count] : result) {
std::cout << word << ": " << count << std::endl;
}
return 0;
}
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👾1
⚡️ VS Code: мультикурсоры
Решение:
Выдели слово → жми
💣 Бонус:
Библиотека C/C++ разработчика
#буст
Знакомо ли тебе чувство, когда нужно изменить одинаковые переменные в 15 местах, и ты тыкаешь мышкой чтобы поменять каждое из них?
Решение:
Ctrl+D
- выделяет каждое следующее вхожденияВыдели слово → жми
Ctrl+D
для каждого следующего → редактируй все сразу// Было
int temp = 0;
temp = getValue();
process(temp);
return temp;
// Жмёшь Ctrl+D три раза на temp и меняешь
int result = 0;
result = getValue();
process(result);
return result;
💣 Бонус:
Ctrl+Shift+L
выделяет ВСЕ вхождения сразу. Но осторожно - может зацепить лишнее.Библиотека C/C++ разработчика
#буст
👍7❤3
Лучший подарок для программиста😻
Перевод:
Розы красные
Фиалки синие
Неожиданное '}' на линии 32
Библиотека C/C++ разработчика
#развлекалово
Перевод:
Библиотека C/C++ разработчика
#развлекалово
🤩4😁3🌚1
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
🍖 Какую тему будем разбирать на этой неделе?
Anonymous Poll
20%
Стандартная библиотка
19%
Алгоритмы
40%
Многопоточность
15%
Оптимизация кода
7%
Всё что угодно только не UB
😁1