정글에서 온 개발자
1/6 TIL c++ rbegin(), rend() 본문
vector로 투포인터를 할 때, index를 벗어나는 문제를 방지하거나 좀 더 모던하게 사용하게 위해 vec[i] 와 같은 인덱싱 접근 대신 vec.begin() ,vec.end() 처럼 iterator를 선언해 인덱스에 접근할 수 있다.
vector<int> vec = {1,2,3,4,5};
auto f = vec.begin();
auto b = vec.end()-1;
while(f<b){
if(*f + *b == k){
...
}
...
}
그러나 위 코드의 경우 vec에 값이 없을 때 문제가 될 수 있다.
vec.end()-1을 했을 때 예상하지 못하는 문제가 발생할 수 있다. vec[i-1] 보다는 나을 수 있는 게, 일부 컴파일러는 문제를 미리 잡아줄 가능성이 있다.
하지만 문제를 일으키지 않기 위해 더 깔끔한 메소드가 있다.
vec.rbegin() 을 하면 뒤에부터의 시작점을 가리킨다.
vec.rend()를 하면 시작점보다 앞쪽을 가리킨다. 거꾸로 iteration을 할 때 편할 수 있다.
'TIL' 카테고리의 다른 글
1/8 TIL [CKA] 기본 개념 (1) | 2025.01.09 |
---|---|
1/7 TIL 실서비스 request body 캡쳐 (0) | 2025.01.08 |
1/5 TIL 단위 테스트 스타일 (1) | 2025.01.05 |
1/4 TIL 목과 테스트 취약성 (1) | 2025.01.05 |
1/3 TIL interval관련 알고리즘, c++ sort 팁 (0) | 2025.01.03 |