Собственно интересует кто какие среды использует. Сам долгое время пишу в Microsoft Visual Studio, т. к. в ней же работаю. Однако я вижу, что большинство участников сдает на компиляторе GCC. Я знаю только Code::Blocks из сред разработки под linux для С++ ну и Qt. Последнее время стала напрягать тяжеловесность студии и подумываю о чем-то более легковесном для олимпиадного программирования.
Поэтому хочу узнать кто что использует. Интересуют среды и способы решения задач под windows и linux на языках C++ и Java.
Буду рад любым вариантам и советам.
На Windows использую Idea для Java, раньше в эклипсе писал. Очень редко использовал Visual Studio, когда надо было писать задачу на плюсах. В Linux писал месяца 2 в эклипсе на Java, различий с виндосовским эклипсом не заметил.
C++:
Windows: VS2012 Express
Linux : MonoDevelop
Java : IDEA
Geany — хорошая и лёгкая IDE для Linux.
Поддерживаю. Умеет подсветку синтаксиса, компиляцию по кнопке (параметры компиляции можно задать самому), а еще открытие файла из темплейта, что по-моему очень удобно для олимпиад.
Олимпиады — Far manager. Легкая, удобная програмка под Windows, которая позволяет писать код на многих ЯП, легко настраивается компиляция по одной клавише, есть подсветка кода. Пишу в Far-е на C++.
Писал в фаре еще когда участвовал в олимпиадах в школе. Году в 2004. Спасибо, что напомнили. Надо попробовать этот вариант, должно получиться достаточно "воздушно" (после студии то).
Аналогично, только пишу в основном на java.
В основном, пишу код и отлаживаюсь в MSVS 2012. Но если в задаче много вычислений или большой объем входных/выходных данных, то компилирую в g++ и сдаю в нем. Почему в gcc: 1) Он не игнорирует "std::ios_base::sync_with_stdio(false)" в отличие от MSVS => std::cin/std::cout на порядок быстрее; 2) У него нет checked-итераторов, что ускоряет работу с контейнерами. Для удобства создал sln из двух проектов: первый из них — типовой проект, компиляция основной программы, второй — Utility, вызов компиляции исходника под g++. Компиляция всего sln позволяет оперативно проверить наличие мест в коде, на которые ругается g++. Если интересно, могу куда-нибудь выложить sln с проектами.
Он не игнорирует "std::ios_base::sync_with_stdio(false)" в отличие от MSVS => std::cin/std::cout на порядок быстрее;
А я как-то игнорировал эту строку, когда анализировал чужой код. Оказывается зря... Я в таких случаях использую scanf/printf.
Да, было бы интересно посмотреть описанные настройки.
sln.zip. Дополнительные фичи: 1) Конфигурации Release и Release_OJ. Первая не определяет ONLINE_JUDGE, вторая — определяет; 2) Секундомер в главной функции, неактивен в Release_OJ; Для удобства рекомендую в настройках отладки поставить чтение из in.txt (непереносимая настройка, хранится в *.vcxproj.user). Предполагается, что g++ уже установлен и путь к нему прописан в окружении
Спасибо, поковыряюсь. =)
Забыл сказать, что есть еще одна фича в выложенном коде: возможность в in.txt поместить несколько тестов. В ONLINE_JUDGE исполняется только первый, а без него — все, которые найдет до первой ошибки чтения.
Пишу на С++.
Windows : Far
Linux : nano + terminal (Да да, я изврат).
Это одна из причин написания мной этого поста. Меня особенно интересуют возможности компилирования под линукс. Причем с наименьшим количеством наворотов. Просто глядя на тот факт, что большинство посылок идет на GCC я задаюсь вопросом: люди компилируют в терминале?
Интересно узнать ваш опыт. Достаточно ли быстро получается и есть ли какие-нибудь хитрости. Я весьма нетвердо пользуюсь системой linux и поэтому слабо себе представляю как можно ускорить процесс запуска задачи, если компилировать в терминале. Может быть какие-то скрипты на баше?
Также интересует используете ли какие-нибудь плагины для nano?
Под GCC на сервере подразумевается его порт под Windows — MinGW. Собственно им и пользуется большинство локально.
Ну MinGW это компилятор. А как происходит процесс компиляции? Через командную строку? Или MingGW Studio? С MingGW Studio у меня как-то не срослось. Писал как-то на ней небольшой проект года полтора назад. Впечатление осталось негативное. Может у кого-то есть положительный опыт?
Почти в любой IDE (Кроме какой-нибудь VS, может быть) можно просто прописать путь до компилятора. Далеко не все, кто сдает под g++, компилируют в терминале.
Ну моя то проблема в данном случае как раз в том, что кроме VS я толком ничего и не знаю. Ну может Qt Creator еще, в которой, согласен, можно прописать пути и использовать тот же MinGW. Возможно позже я и попробую Qt под линукс для решения задач...
А чем пользуетесь вы? Какой связкой IDE+compilator?
Раньше использовал NetBeans.
Сейчас чаще всего IntellijIdea (и Javу). Если на плюсах, то либо NetBeans, либо vim. NetBeans у меня, кстати всегда сразу подхватывает компилятор сам.
По скорости написания кода и работы с ним связка nano + терминал в моем случае не уступает скорости, когда я работаю в Far'e. Преймущество полной работы в терминале это то, что помимо самого кода можно делать и другие задачи, то есть написание кода не отвлекает от самой работы в линуксе. Все можно заставить работать "из коробки". Nano и gcc (по крайней мере в последней сборке archlinux) уже есть в системе, поэтому работать можно начать практически сразу же. Если же хочется большей кастомизации, то нужно настраивать nano (полностью настраиваемая подсветка синтаксиса, авто индент, размер таба ну и т.д.). Многие люди используют вместо nano emacs, тоже хорошая вещь, но переучиваться лень, так что останусь на nano.
P.S. Многовато букафф вышло о_О
А вы выходите из nano, чтобы код скомпилить? Или просто несколько терминалов?
Обычно использую 2 окружения — один с нано, другой чтобы компилить. Поначалу непривычно, зато потом получается выгоднее Far'a.
"Букафф" в самый раз. =) Цель моего поста набрать как можно больше информации из источника, максимально приближенного к проблеме (то есть у участников контестов).
Меня как раз интересуют возможности кастомизации. Потому что я сижу в студии сейчас ради Visual Assist X, который предоставляет удобную подсветку и подстановку. В принципе можно этим и пожертвовать при переходе, но было бы круто найти альтернативу на линуксе. =)
Ну, судя по тому, что я искал в гугле — нано автокомплит не поддерживает. Но и не страшно — в Фаре тоже автокомплита нету.Автокомплит не панацея, как мне кажется. Но если уж очень хочется — есть codeblocks. Открытая IDE со всем, что нужно. И автокомплит, и компилит по F9, ну и т.д.
Автодополнение в CodeBlocks — отстойное. Собственно, мало что мне вообще нравится, разве что более менее NetBeans и VS. Ждём JetBrains
С++, пишу в Xcode (макентош)
на C++ пишу в vim с плагинами YouCompleteMe (автодополнение), Syntactic (подсветка ошибок), clang-format (автоформатирование). На контестах тестирую код с помощью Codeforces Runner
командой для компиляции лучше пользоваться такой же, какая указана в FAQ — http://codeforces.net/blog/entry/79. Надо только убрать -DONLINE_JUDGE и по желанию добавить
-std=c++0x
Большое спасибо. Обязательно попробую описанный вариант.
Мне пару раз приходилось слушать "дифирамбы" в пользу такого варианта (vim + plugins), но попробовать энергии так и не хватило. Теперь же заинтересованность выше.
А как быстро использовать команду из http://codeforces.net/blog/entry/79? Как я уже упоминал, в линуксе простой юзер и кроме ctrl+c/ctrl+v ничего в голову не приходит.
ее можно прописать в конфиг Codeforces Runner — https://github.com/sayuan/CodeforcesRunner/blob/master/cf.conf
или в файл
~/.vimrc
, примерно так:файл скомпилируется при нажатии на F5. Можно сделать, чтобы он после этого еще и запустился:
Thank you, so much! =)
Прочитав заголовок, первое что пришло в голову — спиды:(
Наркоман штоле?
Как догадался?:)
Думаю, вам стоит почитать этот пост и коменты к нему.
Спасибо! Пробовал гуглить вопрос по CodeFoces, но ничего толком не нашел. Надо было по тегам поискать...
Я пишу на C++ в MSVS 2008, а сдаю задачи на GCC. Причина простая, часто бывает что код сгенерированный на нем быстрее работает и жрет меньше памяти, от части так происходит из-за различий реализации STL, отчасти из-за оптимизатора. Это конечно спорный момент, и с течением временем может меняться "лучший" в этом плане компилятор, наверное по привычке так делаю. Еще в нем есть long double.
Я работаю на VIM + Eclipse: VIM c YouCompleteMe и прочими плюшками очень крут. На эклипсе использую eclim. (for C++, Javascript, python). Java, Javascript, Python: IntelliJ Idea (full).
Contests: XCode.
C++ on DEV-C++. very easy!