Не запускать программу.
Я который учу С++: std::cout<<"БЛЕААААААТЬ";
Использовать отладчик
Не используйте STL. Вы не знаете как он работает. Разбирайтесь в основах языка.
Я никогда не юзал отладчик, т.к. только учу С++, можете мне подробнее рассказать о отладчиках?
в книгке используется STL
Какая у вас ОС и используете ли IDE?
Читайте инструкцию к вашему отладчику. Например gdb.gnu.org
Linux, юзаю VS Code
Понял, спасибо большое
Тогда про gdb почитайте.
Вы знаете как работает линукс?
Понятно, благодарю
Знять как работает ядро, как раз не обязательно
Но вы же его используете.
А значит "не используйте Linux. Вы не знаете как он работает.
Точно так же необязательно знать, как работает std::cout, чтобы иметь возможность его использовать.
/warn пропаганда нетрадиционных ценностей
Сам ты пропаганда нетрадиционных ценностей. Человек дебагер первый раз запускает и должен ковыряться в ошметках огромной библиотеки на шаблонах (скорее всего что такое шаблон он тоже не знает)
Зачем? Пусть ковыряется в своем коде.
А зачем ему там ковырятся? Ему нужно изучить контракты функции и проверять инпут/аутпут
Вы во так будете транслировать свою шизу в двух чатах? В одном рассказывать про плохой волатайл и плохой современный си плюс плюс, а в этом чате рассказывать про плохую стд?
В том то и дело, что не в своём, а в коде libstdc++
В каком месте?
Не ну он то в своём ковыряется
Сомневаюсь, что проблема в имплементации стандартной библиотеке, а не в коде ТС. Почему вы в этом так уверены?
Сейчас он запустит отладчик и он покажет, что код падает где-нибудь в аллокаторе.
Жизнь-боль писать код без отладчика.
причем в buddy allocator-е в ядре
Мне кажется, если что-то не так и ты не пишешь суперсложный код, чаще всего это твоя вина и твоего кода.
Давайте ему 4 варн выпишем
Во-первых, совершенно не обязательно. Во-вторых, ковыряться там все равно не нужно.
Не повезло не повезло).
То что я считаю STL отвратительным никак не влияет на то, что для учёбы он вреден. Сначала указатели, ссылки, классы, структуры, конструкторы, деструкторы, операторы, массивы, объединения, виртуальность, шаблоны, только потом STL.
Люди с физтеха и яндекса, которые сделали пояса наверное глупые, что с первых уроков используют STL.
добавьте, пожалуйста, что в это сообщение ещё то, что все стандарты после 98 ужасны
Да и до тоже, чего уж там. Вот Керниган с Риччи...
Ну давайте каждый будет писать свои контейнеры, алгоритмы сортировки и собирать все грабли, которые уже собрали за десятки лет до него.
Да это профессиональный фанат столярова
Все, что я читал об образовательном процессе, говорит о превосходящей эыфективности подхода "от общего к частному"', а не наоборот.
Как и во многом - важен баланс между фундаментальностью и функциональностью ибо писать свои вектора и связанные списки весело и заодно, но не хватит времени изучить/познакомиться с многим другим-вкусным
Курс от Яндекса в сотрудничестве с МФТИ, белый пояс, жёлтый пояс и т.д. Хороший курс, раньше был на курсере за дёшево. Теперь за дорого.
Хорошие курсы только в ВУЗе
я могу выдать инсайд - нет, в вузах зачастую не хорошие курсы. Может быть в каком-то конкретном, лучшем на свете
Я уверен что любой ВУЗ лучше чем Яндекс пояса
а мне понравился, зато коротко и понятно, сразу с примером работы. А полтора часа лекцию слушать, а потом полтора вспоминать и разбираться, ну такое
Только в топовых ВУЗах, где большинству вход заказан. Если конкретно про курсы на плюсах.
это верно для большинства провинциальных вузов. В столичных — по другому вс
ну теоретически можно поступить на платное? или нет?
Если есть 500к за год. Тогда почему нет.
или бесплатно посмотреть курс от яндекса 🤝
это подъемная сумма
Для студента 17 лет? А если он из провинции со средней зп в 35к?
хотя да, вы правы
Некоторые реализации STL при сборке с отладочными макроопределениями имеют в своём коде дополнительные проверки и кидают исключения при несоблюдении контрактов пользователем. Если проблема, в контейнерах, то можно просто их собрать нормально и прочитать сообщение в исключении и посмотреть в отладчике, где падает.
Чёйта тебе заказан ? Сдавай ЕГЭ на 500 баллов, и иди хоть в МГИМО
И ты не поступишь. Потому что в фкн в вышке или в фпми физтеха проходной на бюджет 304+ баллов.
Сдавай олимпиады, они теперь практически везде есть.
Мне уже не надо. И я говорил про большинство. Это не значит, что прям вообще без шансов поступить. Но очень тяжело.
Жизнь вообще нелегка
я бы не сказал, вполне приемлимо. Если не напрягаться из-за пустяков, например о получении 305 баллов за егэ чтобы просто ходить шарагу чуть получше чем все остальные. Хотя это и вправду, серьезное достижение
Ну тогда получается хороший курс С++ доступен единицам, а простым работягам читать дедовские конспекты по плюсам без ООП с функциями на 5к строк?
Что в этом плохого ?
Что плохого получать нерелевантную инфу в универе?
В чем проблема? Не загромождаем пространство имён, да, сейчас это бесполезно, пока проекты не имеют огромного количества либ, а дальше?
Не просто же так явно указывают пространство имён, на сколько я знаю, это делают на больших проектах с большим количеством либ и пространств имён
Речь шла про STL, а не пространства имён.
Ааааабл, совсем крыша едет, std прочитал, прошу прощения
c++ #include <algorithm> #include <array> #include <iostream> template <typename... Args> class text_printer { private: template <typename _Sequence_Argument> constexpr auto push_one(_Sequence_Argument &&arg) -> decltype(auto) { if constexpr (!std::is_integral_v<std::decay_t<_Sequence_Argument>>) { return int(arg); } else { return char(arg); } } std::array<char, sizeof...(Args)> arguments; public: constexpr text_printer(Args... args) : arguments({push_one(args)...}) {} constexpr auto get() const noexcept { return arguments; } template <typename _Ch, typename _Tr, typename _Tuple, std::size_t... _Is> static constexpr void print_impl(std::basic_ostream<_Ch, _Tr> &ostream, const _Tuple &t, std::index_sequence<_Is...>) { ((ostream << (_Is == 0 ? "" : ", ") << std::get<_Is>(t.get())), ...); } }; template <typename _Ch, typename _Tr, typename... _Args> constexpr std::ostream & operator<<(std::basic_ostream<_Ch, _Tr> &ostream, const text_printer<_Args...> &printer) { ostream << '('; text_printer<_Args...>::print_impl( ostream, printer, std::index_sequence_for<_Args...>()); return ostream << ')'; } auto main() -> int32_t{ std::cout << text_printer('B', 'L', 'E', 'A', 'T', 'b')<< std::endl; return EXIT_SUCCESS; }
#include <algorithm> #include <array> #include <iostream> template <typename... Args> class text_printer { private: template <typename _Sequence_Argument> constexpr auto push_one(_Sequence_Argument &&arg) -> decltype(auto) { if constexpr (!std::is_integral_v<std::decay_t<_Sequence_Argument>>) { return int(arg); } else { return char(arg); } } std::array<char, sizeof...(Args)> arguments; public: constexpr text_printer(Args... args) : arguments({push_one(args)...}) {} constexpr auto get() const noexcept { return arguments; } template <typename _Ch, typename _Tr, typename _Tuple, std::size_t... _Is> static constexpr void print_impl(std::basic_ostream<_Ch, _Tr> &ostream, const _Tuple &t, std::index_sequence<_Is...>) { ((ostream << (_Is == 0 ? "" : ", ") << std::get<_Is>(t.get())), ...); } }; template <typename _Ch, typename _Tr, typename... _Args> constexpr std::ostream & operator<<(std::basic_ostream<_Ch, _Tr> &ostream, const text_printer<_Args...> &printer) { ostream << '('; text_printer<_Args...>::print_impl( ostream, printer, std::index_sequence_for<_Args...>()); return ostream << ')'; } auto main() -> int32_t{ std::cout << text_printer('B', 'L', 'E', 'A', 'T', 'b')<< std::endl; return EXIT_SUCCESS; }
Обсуждают сегодня