我用模板写了课。类具有作为成员的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/

10-11 22:57
查看更多