所以我有這個功能如何使用重載[]在同一個文件中C++
template<class KEY,class T, bool (*tlt)(const KEY& a, const KEY& b)>
T BSTMap<KEY,T,tlt>::put(const KEY& key, const T& value) {
if (!has_key(key))
throw KeyError("BSTMap::put");
this[key] = value;
++mod_count;
return this[key];
}
這是應該用我的超載[],如在此代碼。
T& BSTMap<KEY,T,tlt>::operator [] (const KEY& key) {
if (has_key(key))
return find_key(map, key)->value.second;
find_key(map, key)->value = Entry(key, T());
used++, mod_count++;
return find_key(map, key)->value.second;
}
從本質上講,[]
運營商在這種情況下,需要一個密鑰和創建,如果它不存在的條目,否則返回到該領域的現有價值的參考。我的問題是,如何在文件中使用超載的[]
運算符來修改我的數據。我嘗試使用this[]
,但這不起作用。
'運營商[](鍵) '? – crashmstr