데이터 구조체 클래스에 대한 해시 테이블을 작성 중이며 구현에 구문 단설을 조금 추가하고 싶습니다. 내가 < < DICT [ "의 mykey"] cout과 같은 일을 할 때 잘 작동오버로드 브래킷 액세스 및 할당 C++
template <typename HashedObj, typename Object>
Object & Dictionary<HashedObj, Object>::operator[](HashedObj & key)
{
return items.lookup(key);
}
. 그러나 어떻게 대괄호로 대입 할 수 있습니까? 같은 뭔가 :
dict["mykey"] = "something";
그리고 아니, 이건 내 숙제 (의도 웃기), 난 그냥 조금 더 나은 C++를 배우고 싶은의 일부가 아닙니다.
BTW, 당신은 문자열 키들과 함께 사용하기 위해 당신의'Dictionary'를 선언 할 때'HashedObj'로 사용합니까? 위의 예에서''mykey ''처럼. – AnT
참조를 반환하기 때문에 대입 연산자는 예상대로 작동해야합니다. lookup()이 키를 찾지 못했을 때 유일한 문제가 발생했다. –
제 테스트에서 저는 문자열을 사용합니다 : Dictionary dict; –
Matt