Range based for loops

Att iterera över elementen i en container är er en mycket vanlig uppgift så det skall vara enkelt att skriva och tydligt att läsa. I C++ var det till och med värre än i andra språk pga den omfattande koden för att hantera iteratorer.  Vi har tidigare sett den nya användningen av auto som ett sätt att lösa detta till viss del men nu kommer något ännu bättre!

Den nya konstruktionen för ”range based for loops” gör det ännu enklare. Till exempel för att gå igenom en lista av int kan vi skriva så här:

list<int> numbers {1, 2, 3, 4, 5};

for (int& i : numbers)
{
   i += 2;
}

Detta går igenom listan och lägger till 2 till varje element. Notera den kompakta notationen.

auto funkar också och då blir det så här:

for (auto & i : numbers)
{
   i += 2;
}
Publicerad i C/C++

Kategorier

WP to LinkedIn Auto Publish Powered By : XYZScripts.com