정글에서 온 개발자

1/6 TIL c++ rbegin(), rend() 본문

TIL

1/6 TIL c++ rbegin(), rend()

dev-diver 2025. 1. 7. 00:57

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