BFS나 DFS 시 범위 검사는 보통 아래와 같이 진행한다.
#include <iostream>
#include <vector>
using namespace std;
void main()
{
vector<int> v {1, 2, 3, 4, 5};
for (int i = -10; i < 10; ++i)
if (0 <= i && i < v.size())
cout << v[i] << " ";
}
출력
1 2 3 4 5
자료형을 unsigned로 사용하면 0보다 작은 값을 검사하지 않아도 된다.
#include <iostream>
#include <vector>
using namespace std;
void main()
{
vector<int> v {1, 2, 3, 4, 5};
for (int i = -10; i < 10; ++i)
if (unsigned(i) < v.size())
cout << v[i] << " ";
}
출력
1 2 3 4 5
'자료구조 & 알고리즘 > 기타' 카테고리의 다른 글
set, lower_bound(), upper_bound()에 사용자 지정 타입 사용 (0) | 2023.08.10 |
---|---|
우선순위 큐 사용시 비교기 정의가 기억나지 않을 때 (0) | 2023.07.25 |
map에서 키 존재 여부를 확인할 때 주의할 점 (0) | 2023.07.08 |
1차원 벡터를 2차원 벡터로 변환 (0) | 2023.05.26 |
합집합, 교집합, 차집합 (0) | 2023.05.11 |