C++ 如何使用hase_映射来插入hash_映射<;字符串,类*>;如何插入和查询?

C++ 如何使用hase_映射来插入hash_映射<;字符串,类*>;如何插入和查询?,c++,hash,hashmap,derived-class,C++,Hash,Hashmap,Derived Class,我声明hash\u映射hashFactor因子是一个基类,我想存储其派生类的指针 DoubleFactor dbFactor(fname); dbFactor.setValueFrom(svalue); dbFactor.setParam(sparam); dbFactor.setMethod(smethod); listFactor.p

我声明
hash\u映射hashFactor因子是一个基类,我想存储其派生类的指针

                DoubleFactor dbFactor(fname);
                dbFactor.setValueFrom(svalue);
                dbFactor.setParam(sparam);
                dbFactor.setMethod(smethod);
                listFactor.push_back(dbFactor);

                Factor* baseFactor = &dbFactor;
                hashFactor.insert(fname, &baseFactor);
但我有一个编译器错误

    1   IntelliSense: no instance of overloaded function "stdext::hash_map<_Kty, _Ty, _Tr, _Alloc>::insert [with _Kty=std::string, _Ty=Factor *, _Tr=stdext::hash_compare<std::string, std::less<std::string>>, _Alloc=std::allocator<std::pair<const std::string, Factor *>>]" matches the argument list
        argument types are: (std::string, Factor **)
        object type is: stdext::hash_map<std::string, Factor *, stdext::hash_compare<std::string, std::less<std::string>>, std::allocator<std::pair<const std::string, Factor *>>>
1 IntelliSense:重载函数“stdext::hash_map::insert[with _Kty=std::string,_Ty=Factor*,_Tr=stdext::hash_compare,_Alloc=std::allocator]”的实例与参数列表不匹配
参数类型有:(std::string,Factor**)
对象类型为:stdext::hash\u map
DoubleFactor是一类派生的因子。
我应该编写什么代码?我没用过散列图。请忽略我语言的语法。谢谢。

代码的最后一行,
&baseFactor
应该是
baseFactor
(或者只是
&dbFactor
)。我强烈怀疑您在不久的将来还会遇到更多的问题,主要是关于对象生命周期的问题,但这应该可以解决您在这里提出的具体问题。您的问题与
哈希映射
本身无关。阅读关于C++中的指针和多态性和对象生存期的文章。