[C++] for each 써보기

2016. 1. 19. 23:59프로그래밍/C/C++

728x90
728x90

코드 짠 거 보다가 파트장님이 for each라는 것을 쓰길래 찾아봤다.

algorithm의 std::for_each는 자주 봤지만 ..  C++에도 for each가 있었나? 하며 찾아봤다.


2015기준 MSDN을 보니 권장하지는 않는다고 적혀있다.

아마 범위계열은 for ( type value : values )가 있기 때문에 이것을 미는듯!


MSDN

https://msdn.microsoft.com/en-us/library/ms177202.aspx


1
2
3
for each (type identifier in expression) {
   statements
}
cs


대충 이런 형태다.


예제

https://github.com/ElementalKiss/Cpp/blob/master/Example/ForeachExample.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <vector>
#include <algorithm>
 
int main(int argc, const char* argv[])
{
    const int VEC_SIZE = 5;
 
    std::vector<int> intArray;
    intArray.reserve(VEC_SIZE);
    intArray.push_back(10);
    intArray.push_back(20);
    intArray.push_back(30);
    intArray.push_back(40);
    intArray.push_back(50);
 
    // usin for each
    int sum = 0;
    for each (auto num in intArray)
    {
        sum += num;
    }
 
    std::cout << "total = " << sum << std::endl;
    
    // using lambda, for_each(algorithm)
    int sum2 = 0;
    std::for_each(intArray.begin(), intArray.end(), [&sum2](int &num) {sum2 += num; });
    
    std::cout << "total2 = " << sum2 << std::endl;
}
 
cs


간만에 람다도 함 써보고..

728x90
반응형

'프로그래밍 > C/C++' 카테고리의 다른 글

[C/C++] shift operator 사용 시 주의  (0) 2019.07.19
[VS] tab, space 보기  (0) 2019.02.27
[Boost] 설치  (0) 2016.03.19
[C++, Json] jsoncpp 사용하기  (5) 2016.01.06
[C/C++] 삼항 연산자  (4) 2015.11.27
[C++11] 주요 기능들  (0) 2015.09.07
[C++/STL] STL 벡터와 배열 차이  (1) 2015.08.19