Просмотр источника
{note}
h2. Скачать C++ IDE для DL: Быстро скачать с Google Drive: https://drive.google.com/open?id=1jMRr8lUVMikH1xgPW0PPxapTsi83LKkT [CodeBlocks-DL.7z|http://dl.gsu.by/images/Downloads/CPP/CodeBlocks-17.12/CodeBlocks-DL.7z] (64 Мб) [CodeBlocks-DL.zip|http://dl.gsu.by/images/Downloads/CPP/CodeBlocks-17.12/CodeBlocks-DL.zip] (157 Мб) [default.conf|http://dl.gsu.by/images/Downloads/CPP/CodeBlocks-17.12/default.conf] (отдельно настройки) h5. [Как распаковать и запустить|http://dl.gsu.by/images/_i4f/cpp/CB-inst.doc] В сборку включено: * MinGW-w64 GCC 7.3.0 [*|https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.3.0/threads-win32/dwarf/i686-7.3.0-release-win32-dwarf-rt_v5-rev0.7z/download] * Code::Blocks 17.12 [*|http://sourceforge.net/projects/codeblocks/files/Binaries/17.12/Windows/codeblocks-17.12-nosetup.zip] [portable|http://wiki.codeblocks.org/index.php/FAQ-Settings#Q:_Where_does_C::B.27s_configuration_file_store.3F_How_do_I_make_Code::Blocks_portable.3F] * По умолчанию используется компилятор "GNU GCC Compiler 7.3.0 Debug" с доступными под mingw [страховочными|http://codeforces.com/blog/entry/15547] [опциями|https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html] {noformat}-std=c\+\+17 -static -m32 -march=native -mfpmath=sse -Wl,--stack,67108864 -Og -g -pedantic -Wall -Wextra -Wfloat-equal -Weffc++ -Wredundant-decls -Wconversion -Wlogical-op -Wcast-qual -Wformat=2 -Werror -Wno-error=sign-compare -Wno-error=conversion -Wno-error=vla -Wno-error=maybe-uninitialized -Wno-error=float-equal -Wno-error=float-conversion -fstack-protector-all -lssp -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_FORTIFY_SOURCE=2{noformat} * Также через меню {{Settings \ Compiler \ Selected compiler \ Set as default}} можно активировать отдельно доступный под именем "GNU GCC Compiler 7.3.0 Release" набор опций компилятора {noformat}-std=c++17 -static -m32 -march=native -mfpmath=sse -Ofast -flto -Wl,--stack,67108864{noformat} * Отступ в два пробела * На сочетание Ctrl+Alt+L повешено автоформатирование кода через плагин [AStyle|http://stackoverflow.com/questions/16745108/formatting-code-in-code-blocks] с шаблоном [Google|http://astyle.sourceforge.net/astyle.html#_style=google] * В меню Tools добавлен пункт "Run with stdin from input.txt" для запуска с [перенаправлением stdin на чтение из файла|http://stackoverflow.com/questions/13295869/code-blocks-redirecting-input-output] * Изменён шаблон нового файла *.cpp при создании проекта или отдельно нового файла через меню {{File \ New \ File... \ C++ Source}}: {code} #include <bits/stdc++.h> using namespace std; int main() { int s; cin >> s; cout << s; } {code} *Чтобы использовались предзаданные настройки, IDE нужно запускать в портативном режиме через {{CodeBlocks-17.12\CbLauncher.exe}}.* В этом случае для хранения настроек будет использоваться файл {{CodeBlocks-17.12\default.conf}} внутри приложения, общий на всех пользователей ПК. Если же запуск приложения в классе производится из общей сетевой папки, то лучше запускать {{CodeBlocks-17.12\codeblocks.exe}}, который создаёт с нуля отдельные настройки в пользовательском профиле. Перед этим нужно будет один раз скопировать {{CodeBlocks-17.12\default.conf}} из архива в {{%APPDATA%\CodeBlocks\default.conf}}. Для запуска отладчика требуется предварительная настройка проекта. См. об этом подробнее в иллюстрированной [инструкции|http://dl.gsu.by/images/_i4f/cpp/CB-inst.doc]. Отладчик [не работает при наличии в пути к файлу пробелов|http://wiki.codeblocks.org/index.php?title=Debugging_with_Code::Blocks#Path_with_spaces]. {note} h1. [С++|https://ru.wikipedia.org/wiki/C%2B%2B] Справка по языку: http://ru.cppreference.com/w/. Очень познавательно [C++ 11 FAQ от Бьярна Страуструпа|http://sergeyteplyakov.blogspot.com.by/2012/05/c-11-faq.html]. В [C++14|https://ru.wikipedia.org/wiki/C%2B%2B14] и [C++17|https://ru.wikipedia.org/wiki/C%2B%2B17] были ещё улучшения. Сегодня использовать старые стандарты не имеет смысла. [Бесплатный курс Академии Яндекса Введение в программирование (C++)|https://stepik.org/course/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-(C++)-363/syllabus?module=1] h3. Полезности * [Редирект cin/cout в файлы|http://stackoverflow.com/a/38504880/603516] * [Отключение синхронизации stdin|http://stackoverflow.com/questions/31162367/significance-of-ios-basesync-with-stdiofalse-cin-tienull] * [Медленный|http://codeforces.com/blog/entry/43780] [endl|http://stackoverflow.com/questions/213907/c-stdendl-vs-n] * [Инициализация массива нулями|http://stackoverflow.com/questions/1920430/c-array-initialization] [Google C++ Code Style|https://google.github.io/styleguide/cppguide.html]. [Форум DL по С++|http://dl.gsu.by/NForum/posts/topicshow/2567.dl?postid=63941#63941] h2. Compilers h3. GCC for Windows [GNU Compiler Collection|https://gcc.gnu.org/] содержит самую распространённую реализацию компилятора C++ и стандартной библиотеки. Под Windows она доступна в сборках: || Сборка || Версия GCC || Коментарий || | [Cygwin|https://cygwin.com/] | ? | См. [Cygwin vs MinGW|http://stackoverflow.com/questions/771756/what-is-the-difference-between-cygwin-and-mingw], т.е. не очень хороший вариант. | | [MinGW|https://sourceforge.net/projects/mingw/] | 6.3.0 | Полная поддержка C++14. Устарелая сборка, медленно обновляется и иногда содержит хронические баги | | [MinGW-w64|https://sourceforge.net/projects/mingw-w64/] | 8.1.0 | Полная поддержка C++17. Активнее обновляется и исправляется, чем MinGW. [Готовые сборки для скачивания|https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/]. [Значение опций|http://stackoverflow.com/questions/29947302/meaning-of-options-in-mingw-w64-installer]. | | [Nuwen|https://nuwen.net/mingw.html] | [9.2.0|https://gcc.gnu.org/gcc-9/changes.html] | C++17 по умолчанию. Собственная структура каталогов, которую [сложнее|http://forums.codeblocks.org/index.php?topic=18259.0] подключить в IDE. | [Версии компиляторов, доступные к тестированию на DL|DL Compilers]. h3. [Clang|https://ru.wikipedia.org/wiki/Clang] / [LLVM|http://clang.llvm.org/] Более прогрессивный компилятор, быстрее и лучше сообщения об ошибках. Но не содержит стандартных заголовков, которые нужно брать из GCC, что [усложняет|http://stackoverflow.com/questions/14419168/using-clang-with-codeblocks-on-windows-7] настройку. h3. [Visual C++ Build Tools|http://landinghub.visualstudio.com/visual-cpp-build-tools] Для установки нужно минимум 3 Гб свободного места. h2. Online IDEs Для начальных программ современные онлайн редакторы могут оказаться даже удобнее, т.к. не требуют настройки, а по функционалу почти не уступают. https://coderpad.io/ - быстрые автодополнение и запуск, подсветка ошибок на лету, автосохранение, но нет консольного ввода https://www.hackerrank.com/ - можно отлаживать свою программу в окне подходящей задачи http://cppshell.com/ http://ideone.com/ h2. Desktop IDEs Выбор IDE для олимпиад: https://www.quora.com/Being-a-competitive-programmer-which-is-the-best-IDE-to-use http://codeforces.com/blog/entry/3060 http://codeforces.com/blog/entry/356 Олимпиадникам стоит заранее познакомиться с редакторами, доступными на [IOI|http://ioi2016.ru/pages/environment?locale=ru] и [ACM ICPC|https://icpc.baylor.edu/worldfinals/programming-environment]. Для разработки: http://stackoverflow.com/questions/89275/best-c-ide-or-editor-for-windows https://www.quora.com/What-is-the-best-C-C-IDE http://ru.stackoverflow.com/questions/3592/ide-%D0%B4%D0%BB%D1%8F-c-%D0%B8-c https://habrahabr.ru/post/149773/ h3. [Code::Blocks|http://www.codeblocks.org/] Относительно легковесный редактор по сравнению с конкурентами. Есть автодополнение. Настройка проекта не обязательна. Интерфейс страшненький, но олимпиадники хвалят за функционал и скорость. Есть плагины. Доступен на IOI. [CodeBlocks HowTo|https://www.ntu.edu.sg/home/ehchua/programming/howto/CodeBlocks_HowTo.html]. [Run with redirected input/output|http://stackoverflow.com/questions/13295869/code-blocks-redirecting-input-output]. [Скачать|http://www.codeblocks.org/downloads/26#windows]. {{codeblocks-17.12mingw-setup.exe}} содержит в себе уже настроенный компилятор GCC MingGW 5.1.0, но в нём [нашлись|http://stackoverflow.com/questions/12975341/to-string-is-not-a-member-of-std-says-so-g#comment63754740_12975602] [баги|http://stackoverflow.com/a/38163628/603516]. Поэтому лучше ставить отдельно `codeblocks-17.12-setup.exe` и последнюю версию MinGW-w64, [например 8.1.0|https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/threads-win32/dwarf/i686-8.1.0-release-win32-dwarf-rt_v6-rev0.7z/download], которую потом [указать в настройках|http://stackoverflow.com/questions/26414511/how-do-i-compile-for-64bit-using-g-w-codeblocks] ([в картинках|http://www.cyberforum.ru/post7591263.html]). Заодно рекомендуется в настройках сразу включить [-std=c++17|http://stackoverflow.com/questions/31171979/enabling-std-c14-flag-in-codeblocks]. || Полезные действия || Hotkey || | Компиляция и запуск | F9 | | Форматирование кода | Plugins -> Source code formatter ([AStyle|http://wiki.codeblocks.org/index.php?title=Source_Code_Formatter_plugin]) [*|http://stackoverflow.com/questions/26278082/is-there-any-shortcut-for-codeblocks-to-fomat-the-code] | h3. [Codelite|http://codelite.org/] Близкий соперник Code::Blocks. Есть поддержка [компиляции|http://codelite.org/LiteEditor/ClangCompiler] и [автодополнения|http://codelite.org/LiteEditor/ClangIntegration35] через Clang. h3. [Dev-C++|https://sourceforge.net/projects/orwelldevcpp/] Тоже лёгкое IDE как предыдущие, но есть негативные отзывы на codeforces. h3. [JetBrains CLion|https://www.jetbrains.com/clion/] Очень удобный редактор и отладчик. Но нет [общедоступной бесплатной|http://forum.ru-board.com/topic.cgi?forum=35&topic=2021&start=620] версии. Пока подсветка в редакторе не понимает C++14. Требуется отдельная настройка проекта под каждый файл с решением. h3. [Visual Studio Community|https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx] Содержит реализацию языка и навороченное IDE, которое многие хвалят. Если не жалко 8 Гб места, можно попробовать. Требуется отдельная настройка проекта под каждый файл с решением. h3. [Eclipse CDT|http://www.eclipse.org/cdt/] Требуется отдельная настройка проекта под каждый файл с решением. Доступен на финалах IOI и ACM ICPC. h3. [NetBeans|https://netbeans.org/features/cpp/] Требуется отдельная настройка проекта под каждый файл с решением. |