0
내가 가진 같은 C++ 코드 : rtstructure 키에 대한 표준 : : 문자열을 표준 : :지도가키가없는 경우 충돌없이 std :: map에서 값을 가져올 수 있습니까?
if(rtstructure.find(varName) != rtstructure.end()) {
rtdef = rtstructure[varName];
}
. 이 코드는 작동하지만 동일한 키에 대해 두 번 검색하는 것이 낭비처럼 보입니다. 할당 주위에 if case를 생략하면 varName이 존재하지 않는 키를 가리키면 프로그램이 충돌합니다.
하나의지도 연산에서 std :: map의 키를 찾아서 존재할 경우 해당 값을 얻을 수 있습니까? 존재하지 않으면 충돌하지 않습니다.
프로그램이 일반적으로 중단되면 안됩니다. 'map'를 사용하고 계십니까? 또한'map :: find'가 반복자를 반환한다는 점에 유의하십시오. 반복자 ('second')의'value' 개념을 행복하게 사용할 수 있습니다. –
Zeta
예 map is std :: map rtstructure; 여기서 rtobject_t는 구조체입니다. –
분명히 [] 연산자는 존재하지 않는 멤버를 참조하면 초기화되지 않은 포인터를 반환합니다. –