Const 맵의 요소에 액세스: 연산자[] 대 at()
상수 맵으로 작업할 때 연산자[를 사용하여 요소에 액세스합니다. ] 실패할 수 있습니다. 그러나 at()을 사용하는 것이 실행 가능한 대안입니다. 왜 그럴까요?
비상수 맵에서 Operator[]는 두 가지 기능을 수행합니다.
그러나 const 맵에서는 Operator[]가 기본 데이터 구조를 수정할 수 없습니다. 따라서 첫 번째 기능만 수행할 수 있으며 두 번째 기능을 사용하여 새 요소를 삽입하려고 하면 오류가 발생합니다.
반대로 at()은 C 11에서 도입된 메서드로 C 11에서 C 11의 요소에 액세스하기 위해 특별히 도입된 메서드입니다. const 맵. 여러 가지 이점을 제공합니다.
이러한 이유로 at()는 요소에 액세스하는 데 권장되는 방법입니다. const std::map. 예제 코드:
#include <iostream> #include <map> int main() { std::map<int, char> A; A[1] = 'b'; A[3] = 'c'; const std::map<int, char>& B = A; std::cout << B.at(3) << std::endl; // it works std::cout << B[3] << std::endl; // it does not work }
출력:
c error: can't access elements with operator[] in a const std::map
위 내용은 Const Map 액세스: `operator[]` 대신 `at()`를 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!