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을 쓰는 게 안전해요.

더 알아보기 (Learn more)

cppreference