C++에서 반복자(iterator)는 컨테이너의 요소를 순회하고 접근하는 방법을 제공하는 객체입니다.
다양한 종류의 컨테이너와 함께 사용할 수 있으며, 각각의 반복자는 다른 종류의 작업을 지원합니다.
아래에 몇 가지 예제를 제공하겠습니다:
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
// 벡터의 반복자를 선언합니다.
std::vector<int>::iterator it;
// 벡터의 모든 요소를 순회합니다.
for (it = nums.begin(); it != nums.end(); ++it) {
std::cout << *it << " ";
}
return 0;
}
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> ages;
ages["Alice"] = 20;
ages["Bob"] = 22;
ages["Charlie"] = 30;
// 맵의 반복자를 선언합니다.
std::map<std::string, int>::iterator it;
// 맵의 모든 요소를 순회합니다.
for (it = ages.begin(); it != ages.end(); ++it) {
std::cout << it->first << ": " << it->second << std::endl;
}
return 0;
}
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
// 범위 기반 for 루프를 사용하여 벡터의 모든 요소를 순회합니다.
for (int num : nums) {
std::cout << num << " ";
}
return 0;
}
이러한 예제들은 반복자가 어떻게 사용되는지를 보여주며,
실제 사용 시에는 데이터의 크기와 복잡성에 따라 코드를 조정해야 할 수 있습니다.
참고사항
----------------------
std::map<std::string, int> ages;
std::map<std::string, int>::iterator it = ages.begin();
위의 문장을 사용시 it와 *it의 차이점은 다음과 같습니다:
it는 std::map<std::string, int>의 반복자입니다.
이는 컨테이너의 특정 요소를 가리키는 역할을 합니다.
*it는 반복자가 현재 가리키고 있는 요소를 반환합니다
std::map의 경우, 이는 키-값 쌍인 std::pair<const Key, T>를 반환합니다.
따라서 *it를 사용하면 현재 요소의 키에는 (*it).first 또는 it->first로,
값에는 (*it).second 또는 it->second로 접근할 수 있습니다.
'Linux' 카테고리의 다른 글
websocket 프로토콜 분석 (0) | 2022.01.27 |
---|---|
C++ pthread pool management library (0) | 2021.12.08 |
linux find 명령 예 (0) | 2021.07.02 |
vscode 에서 sftp 를 이용하여 서버소스관리하기(로칼에서 git 관리하기) (1) | 2019.10.10 |
SSH 자동 로그인 (ssh 키를 이용한) (0) | 2019.09.17 |