Професионална програма
Loading...
+ Нов въпрос
v.nikolov avatar v.nikolov 17 Точки

[C++] For loops - variations

Здравейте,

Заиграх се с for loops и  стана доста интересно blush

  1. for (int i = 0; i < size; i++) – стандартен loop - ОК

  2. for ( range_declaration : range_expression ) - Range-Based For Loop - c++11

  3. for_each (InputIterator first, InputIterator last, Function fn)-for_each - This loop is defined in a algorithm header.

    Example:

    vector v1;

    for_each(v1.begin(), v1.end(), fun1);

    4.  for each (int i in arr) –  C++/CLI от втория отговор на

http://stackoverflow.com/questions/15027282/c-for-each-pulling-from-vector-elements - „There is no for each in C++. Another option is to use std::for_each with a suitable functor“ . netbeans – c++11, с++14, Cygwin 2.5.1 не се компилира. VS10 компилира без проблем.

Edit: От сайта на Microsoft " Iterates through an array or collection. This non-standard keyword is available in both C++/CLI and native C++ projects. However, its use is not recommended. Consider using a standard Range-based for Statement (C++) instead "

Лектора спомена на първата лекция около 2:26 за for each, който ще говори малко по – късно, но пък аз нямам търпение smiley.

Та сега въпроса е кой “FOR” се използва най-често и съответно в judge (Поддържа се стандарта C++ 14, компилатор GCC 5.2 on Windows (MinGW-w64)) кой ще се компилира?

Тагове:
1
C++ Programming 01/06/2016 18:30:00
Rextor92 avatar Rextor92 149 Точки
  • Judge може да не приеме някои от по-сложните конструкции
  • При предаване на домашно, проверяващия го може да бъде на Windows, Linux или OS X

Аз лично разглеждам всички варианти да направя нещо, но за judge и домашните (за разлика от C#, Java например) се опитвам да направя решение, което би се компилирало на най-широк кръг от компилатори, следователно използвам най-базовите възможни похвати. Бих използвал базовия for loop във всеки случай. Например, ако преглеждам домашно и ми даде грешка при компилация (имайки предвид, че поне под Visual Studio грешките не са особено описателни) бих потърсил в интернет нещо свързано с твоето решение. Някой обаче може просто да не ти даде точки, защото задачата не тръгва.

1