C++ STL 반복문 속도 비교 (for,iterator,for_each)

반응형

문득 프로그래밍하다가 for_each의 속도가 궁금해져서 속도를 비교해보기로한다.

백터를 이용해 백만개의 원소를 생성해서, 반복을 돌려본다.

소스코드

vector<int> vec(1000000, 0);

// 단순 for문
void test1(){
    int size = vec.size();
    for (int i = 0 ; i < size; i++);
}

// 이터레이터 사용
void test2(){
    for (auto i = ob.begin(); i != vec.end(); i++);
}

// for_each
void test3(){
    for_each(vec.begin(), vec.end(), [](int item) {});
}

출력

0. 원소생성

1. 단순 for문

2. 이터레이터 사용

3. for_each

마지막

여러번 돌려도 거의 변함이없었다.

생각보다 의외로 빨라서 놀랐다 믿고 써도될듯 무조건 for_each문만 사용할거임.

반응형