deque::operator[]
deque::operator[] (인덱스로 원소 접근)
지정한 위치의 원소에 대한 참조를 반환하는 첨자 연산자예요. at과 달리 기본적으로 범위 검사를 하지 않아요. 상수 시간에 동작해요.
출처: cppreference
본문
operator[]는 pos 위치의 원소 참조를 돌려줘요.
reference operator[]( size_type pos ); // (1)
const_reference operator[]( size_type pos ) const; // (2)
범위 검사는 하지 않아요. 단, 구현이 하드닝되어 있으면(C++26 이후) 검사가 들어갈 수 있어요.
-
pos < size()가 거짓이면(C++26 이전) 미정의 동작이에요. -
C++26 이후로는 구현이 하드닝되어 있으면 계약 위반이 발생하고, 아니면 여전히 미정의 동작이에요.
-
복잡도: 상수 시간.
std::deque<int> d{10, 20, 30};
int x = d[1]; // 20
d[0] = 99; // 쓰기도 가능
deque는 임의 접근을 지원하지만 내부가 블록으로 나뉘어 있어서 벡터보다 약간의 간접 비용이 있을 수 있어요. 그래도 인덱스 접근은 상수 시간이에요. 범위를 벗어날 위험이 있으면 at을 쓰는 게 안전해요.