vector loop

김대익·2022년 3월 15일
0

vector에서 for문을 돌리는데는

  • index
  • iterator
  • c++ 11 ranged based for loop
#include <iostream>
#include <vector>

int main() {
	std::size_t n;
    std::cin >> n;
    
    std::vector<int> numsA(n, 1);
    std::vector<int> numsB(n, 1);
    std::vector<int> numsC(n, 1);
    
    for (std::size_t idx=0; idx < numsA.size(); idx++) {
    	numsA[idx]
    }
    
    for (auto itr=numsB.begin(); itr != numsB.end(); itr++) {
    	(*itr) *= 2;
    }
    
    for (auto & num : numsC) {
    	num *= 2;
    }
}


인덱스 for문은 vector객체의 size를 이용하고
이터레이터 for문은 힙의 원소의 end()인지 확인하는 방법이다.


반드시 idx형식의 for문을 돌려야할 때가 있는데


위와 같이 emplace_back을 하게되면
저번에 말했던 것과 같이

힙에 저장해뒀던 배열 뒤에 다른 정보가 있어 새로 copy한 뒤 추가해야하는 경우가 있다
이럴 땐 이터레이터가 없어져야할 기존 배열을 가리켜 이상하게 동작하는 경우가 있다.

0개의 댓글