我用模板写了课。类具有作为成员的map和一些getxxx()/ setxxx()成员函数。
template<typename T1,typename T2>
class C1{
map<T1,T2> M;
public:
map<T1,T2> getM();
T2 getMvalue(T1 Key);
void setM(T1 key,T2 Value);
};
在这里,我要实现getMvalue(),在该方法中,它会将key作为参数接收,如果mapM中有“key”可用,则返回相应的“value”。
看起来像...
template<typename TKey,typename TValue>
T2 C1<T1,T2>::getMvalue(T1 Key){
if(M.count(Key)>0)
return M[Key];
else
return(???);
};
在这里,我需要使用代替???的东西。请记住,函数的返回类型为T2,它可以取决于用户的决定。
如何替换“???”还有什么?
最佳答案
我鼓励您使用TryGet
模式
template<typename TKey,typename TValue>
bool C1<T1,T2>::tryGetMvalue(T1 key, T2& value){
if(M.count(key)>0) {
value = objProperties[key];
return true;
}
return false;
};
关于c++ - 我想在c++中为map <>的给定键返回一个值。如果map <>中不存在KEY,该返回什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9622324/