C++ 초보자로서 필자는 반복기를 발견하고 있습니다. 모든 컨테이너를 통해 루프에 대해 int
또는 iterators
을 사용할 수 있음을 알고 있습니다. C++의 정수 또는 반복기 반복과의 차이점
- 하나 또는 다른 방법을 사용하여 임의의 이점이있다, 예
는 일반적으로 출력i is an int: 1 4 8 i is an iterator: 1 4 8
#include <iostream> #include <vector> int main() { std::vector<int> v; v.push_back(1); v.push_back(4); v.push_back(8); std::cout << "i is an int: "; for (int i = 0; i<v.size();i++) { std::cout << v[i] << " "; } std::cout << std::endl; std::cout << "i is an iterator: "; for (std::vector<int>::iterator i = v.begin(); i!=v.end();i++) { std::cout << *i << " "; } std::cout << std::endl; }
고려해야?
- 하나가 다른 것보다 빠릅니까?
- 언제
int
을 사용해야하며 언제iterator
을 사용해야하나요?
C++ 11 이후, 범위를 지정하기 위해 : for (int e : v) {std :: cout << e << "" "; }' – Jarod42
그리고'auto i = v.begin()'도 할 수 있으므로 타입의 상대적으로 복잡한 이름을 지정할 필요가 없습니다 – ForceBru
'int' 버전은 모든 컨테이너에서 일반화 될 수 없습니다 ('list','set' 등), iterator (그리고 위의 범위를 기반으로 함)가 될 수 있습니다. – Chad