wtorek, 27 stycznia 2015

C++: Operator przecinka, czyli jak ładnie zrobić pętlę

Dzisiaj w kodzie popełnionym przez kogoś z firmy, odnalazłem perełkę pokazującą inny sposób tworzenia pętli for w oparciu o iteratory. Tym drobiazgiem czyniącym róznicę jest sprytne wykorzystanie operatora przecinka i konstruktora iteratora. Wygląda to tak:

#include <vector>
#include <iostream>
int main()
{
  int array[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
  std::vector<int> vector(array, array+8);

  for ( std::vector<int>::const_iterator it(vector.begin()), end(vector.end());
  end != it;
  ++it )
    std::cout << *it << std::endl;

  return 0;
}

Takie proste, a jakie ładne.