Как быстро выучить C++ для олимпиадного программирования, если есть опыт профессиональной разработки на PHP и JavaScript?
Здравствуйте!
Есть опыт профессионального программирования на PHP, JavaScript и остальном веб-стеке. Олимпиадные задачи до этого решал на Pascal, но недавно пришла мысль, что я смогу значительно сэкономить время на контестах, если буду использоваться язык с более богатым STL. В силу некоторых причин, это не может быть Java, так что выбор пал на C++.
Как мне изучить C++ на уровне, позволяющем решать олимпиадные задачи? Какие есть книги или может видеокурсы, который учитывают, что это не первый язык программирования, а человек до этого уже вел разработку на другом языке и ему не нужно 30 минут объяснять, что такое переменная и тип данных.
если буду использоваться язык с более богатым STL.
Эм...стандартная библиотека C++ более, чем уныла. А вот специфичных проблем огрести можно знатно.
Да и вам все равно придется начинать с азов, ибо вы не знаете даже, что такое указатели.
Справочник Шилдта посмотрите, он как раз объясняет в меру подробно и держит читателя в тонусе. Когда освоите, то полезно про новые стандарты почитать (C++11/14)
Тарас Сереванн: я к тому, что C++ намного сложнее паскаля и "быстро" выучить не получится. На нем можно не только в ногу себе стрелять, но и прыгнуть 10 раз подряд с моста, стреляя в себе в ногу из космичекой пушки из другой галактики.
А не быстро: берете учебник Праты (я бы рекомендовал его), идете на Codeforces и начинаете решать задачи, по мере изучения материала.
Ваши предыдущие знания могут помочь вам не перечитывать книгу по 10 раз. После того как прочитаете Прату (или другой учебник по основам языка) можете взять учебник чисто по STL.
На самом деле почти все из того что является ++ в С++ олимпиадах не используется. Вот примеры программ (они все такие, заодно комментарии прочитаете) : govnokod.ru/19027 govnokod.ru/19028 govnokod.ru/20365
Если хотите изучить изучить чисто для олимпиадного программирования, то достаточно почитать это:
1) vector
2) map(unordered_map)
3) set
4) string
5) sort, find, min,max, binary_search отсюда algorithm
Три контейнера, строки и пяток шаблонных функций. Внутри есть примеры. Причем достаточно знать простейшие операции типа vector.push_back и vector.size. Время на изучение примерно два вечера, так как у вас есть опыт профессионального программирования.