Блог пользователя fastholf

Автор fastholf, 11 лет назад, По-русски

Собственно интересует кто какие среды использует. Сам долгое время пишу в Microsoft Visual Studio, т. к. в ней же работаю. Однако я вижу, что большинство участников сдает на компиляторе GCC. Я знаю только Code::Blocks из сред разработки под linux для С++ ну и Qt. Последнее время стала напрягать тяжеловесность студии и подумываю о чем-то более легковесном для олимпиадного программирования.

Поэтому хочу узнать кто что использует. Интересуют среды и способы решения задач под windows и linux на языках C++ и Java.

Буду рад любым вариантам и советам.

  • Проголосовать: нравится
  • +3
  • Проголосовать: не нравится

»
11 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

На Windows использую Idea для Java, раньше в эклипсе писал. Очень редко использовал Visual Studio, когда надо было писать задачу на плюсах. В Linux писал месяца 2 в эклипсе на Java, различий с виндосовским эклипсом не заметил.

»
11 лет назад, # |
Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится

C++:

Windows: VS2012 Express

Linux : MonoDevelop

Java : IDEA

»
11 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

Geany — хорошая и лёгкая IDE для Linux.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится

    Поддерживаю. Умеет подсветку синтаксиса, компиляцию по кнопке (параметры компиляции можно задать самому), а еще открытие файла из темплейта, что по-моему очень удобно для олимпиад.

»
11 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Олимпиады — Far manager. Легкая, удобная програмка под Windows, которая позволяет писать код на многих ЯП, легко настраивается компиляция по одной клавише, есть подсветка кода. Пишу в Far-е на C++.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Писал в фаре еще когда участвовал в олимпиадах в школе. Году в 2004. Спасибо, что напомнили. Надо попробовать этот вариант, должно получиться достаточно "воздушно" (после студии то).

  • »
    »
    11 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Аналогично, только пишу в основном на java.

»
11 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

В основном, пишу код и отлаживаюсь в 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 с проектами.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Он не игнорирует "std::ios_base::sync_with_stdio(false)" в отличие от MSVS => std::cin/std::cout на порядок быстрее;
    А я как-то игнорировал эту строку, когда анализировал чужой код. Оказывается зря... Я в таких случаях использую scanf/printf.

    Да, было бы интересно посмотреть описанные настройки.

    • »
      »
      »
      11 лет назад, # ^ |
      Rev. 3   Проголосовать: нравится +1 Проголосовать: не нравится

      sln.zip. Дополнительные фичи: 1) Конфигурации Release и Release_OJ. Первая не определяет ONLINE_JUDGE, вторая — определяет; 2) Секундомер в главной функции, неактивен в Release_OJ; Для удобства рекомендую в настройках отладки поставить чтение из in.txt (непереносимая настройка, хранится в *.vcxproj.user). Предполагается, что g++ уже установлен и путь к нему прописан в окружении

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Спасибо, поковыряюсь. =)

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
            Проголосовать: нравится +1 Проголосовать: не нравится

          Забыл сказать, что есть еще одна фича в выложенном коде: возможность в in.txt поместить несколько тестов. В ONLINE_JUDGE исполняется только первый, а без него — все, которые найдет до первой ошибки чтения.

»
11 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Пишу на С++.

Windows : Far

Linux : nano + terminal (Да да, я изврат).

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Это одна из причин написания мной этого поста. Меня особенно интересуют возможности компилирования под линукс. Причем с наименьшим количеством наворотов. Просто глядя на тот факт, что большинство посылок идет на GCC я задаюсь вопросом: люди компилируют в терминале?
    Интересно узнать ваш опыт. Достаточно ли быстро получается и есть ли какие-нибудь хитрости. Я весьма нетвердо пользуюсь системой linux и поэтому слабо себе представляю как можно ускорить процесс запуска задачи, если компилировать в терминале. Может быть какие-то скрипты на баше?
    Также интересует используете ли какие-нибудь плагины для nano?

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Под GCC на сервере подразумевается его порт под Windows — MinGW. Собственно им и пользуется большинство локально.

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Ну MinGW это компилятор. А как происходит процесс компиляции? Через командную строку? Или MingGW Studio? С MingGW Studio у меня как-то не срослось. Писал как-то на ней небольшой проект года полтора назад. Впечатление осталось негативное. Может у кого-то есть положительный опыт?

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Почти в любой IDE (Кроме какой-нибудь VS, может быть) можно просто прописать путь до компилятора. Далеко не все, кто сдает под g++, компилируют в терминале.

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Ну моя то проблема в данном случае как раз в том, что кроме VS я толком ничего и не знаю. Ну может Qt Creator еще, в которой, согласен, можно прописать пути и использовать тот же MinGW. Возможно позже я и попробую Qt под линукс для решения задач...

        А чем пользуетесь вы? Какой связкой IDE+compilator?

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Раньше использовал NetBeans.

          Сейчас чаще всего IntellijIdea (и Javу). Если на плюсах, то либо NetBeans, либо vim. NetBeans у меня, кстати всегда сразу подхватывает компилятор сам.

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится -8 Проголосовать: не нравится

      По скорости написания кода и работы с ним связка nano + терминал в моем случае не уступает скорости, когда я работаю в Far'e. Преймущество полной работы в терминале это то, что помимо самого кода можно делать и другие задачи, то есть написание кода не отвлекает от самой работы в линуксе. Все можно заставить работать "из коробки". Nano и gcc (по крайней мере в последней сборке archlinux) уже есть в системе, поэтому работать можно начать практически сразу же. Если же хочется большей кастомизации, то нужно настраивать nano (полностью настраиваемая подсветка синтаксиса, авто индент, размер таба ну и т.д.). Многие люди используют вместо nano emacs, тоже хорошая вещь, но переучиваться лень, так что останусь на nano.

      P.S. Многовато букафф вышло о_О

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        А вы выходите из nano, чтобы код скомпилить? Или просто несколько терминалов?

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Обычно использую 2 окружения — один с нано, другой чтобы компилить. Поначалу непривычно, зато потом получается выгоднее Far'a.

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        "Букафф" в самый раз. =) Цель моего поста набрать как можно больше информации из источника, максимально приближенного к проблеме (то есть у участников контестов).

        Меня как раз интересуют возможности кастомизации. Потому что я сижу в студии сейчас ради Visual Assist X, который предоставляет удобную подсветку и подстановку. В принципе можно этим и пожертвовать при переходе, но было бы круто найти альтернативу на линуксе. =)

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

          Ну, судя по тому, что я искал в гугле — нано автокомплит не поддерживает. Но и не страшно — в Фаре тоже автокомплита нету.Автокомплит не панацея, как мне кажется. Но если уж очень хочется — есть codeblocks. Открытая IDE со всем, что нужно. И автокомплит, и компилит по F9, ну и т.д.

          • »
            »
            »
            »
            »
            »
            11 лет назад, # ^ |
            Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

            Автодополнение в CodeBlocks — отстойное. Собственно, мало что мне вообще нравится, разве что более менее NetBeans и VS. Ждём JetBrains

»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

С++, пишу в Xcode (макентош)

»
11 лет назад, # |
Rev. 3   Проголосовать: нравится +3 Проголосовать: не нравится

на C++ пишу в vim с плагинами YouCompleteMe (автодополнение), Syntactic (подсветка ошибок), clang-format (автоформатирование). На контестах тестирую код с помощью Codeforces Runner

командой для компиляции лучше пользоваться такой же, какая указана в FAQ — http://codeforces.com/blog/entry/79. Надо только убрать -DONLINE_JUDGE и по желанию добавить -std=c++0x

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Большое спасибо. Обязательно попробую описанный вариант.
    Мне пару раз приходилось слушать "дифирамбы" в пользу такого варианта (vim + plugins), но попробовать энергии так и не хватило. Теперь же заинтересованность выше.

    А как быстро использовать команду из http://codeforces.com/blog/entry/79? Как я уже упоминал, в линуксе простой юзер и кроме ctrl+c/ctrl+v ничего в голову не приходит.

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится

      ее можно прописать в конфиг Codeforces Runner — https://github.com/sayuan/CodeforcesRunner/blob/master/cf.conf

      или в файл ~/.vimrc, примерно так:

      map <F5> :!g++ -static -fno-optimize-sibling-calls -fno-strict-aliasing -lm -s -x c++ -O2 %<cr>
      

      файл скомпилируется при нажатии на F5. Можно сделать, чтобы он после этого еще и запустился:

      map <F5> :!g++ -static -fno-optimize-sibling-calls -fno-strict-aliasing -lm -s -x c++ -O2 %<cr> :!./a.out<cr>
      
»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Прочитав заголовок, первое что пришло в голову — спиды:(

»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Думаю, вам стоит почитать этот пост и коменты к нему.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Спасибо! Пробовал гуглить вопрос по CodeFoces, но ничего толком не нашел. Надо было по тегам поискать...

»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Я пишу на C++ в MSVS 2008, а сдаю задачи на GCC. Причина простая, часто бывает что код сгенерированный на нем быстрее работает и жрет меньше памяти, от части так происходит из-за различий реализации STL, отчасти из-за оптимизатора. Это конечно спорный момент, и с течением временем может меняться "лучший" в этом плане компилятор, наверное по привычке так делаю. Еще в нем есть long double.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Я работаю на VIM + Eclipse: VIM c YouCompleteMe и прочими плюшками очень крут. На эклипсе использую eclim. (for C++, Javascript, python). Java, Javascript, Python: IntelliJ Idea (full).

    Contests: XCode.

»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

C++ on DEV-C++. very easy!