我正在尝试编译 C++ 源文件,但是在尝试编译时遇到了以下错误。
错误 :
错误:“模板类 std::map”未使用模板参数
我在具有mp.find(someString)
.
map<string, int *> mp;
sub = "xyz";
if(mp.find(sub) != map::end) {
doSomething();
}
if
执行语句时出现错误。
我该如何解决这个问题?
我正在尝试编译 C++ 源文件,但是在尝试编译时遇到了以下错误。
错误 :
错误:“模板类 std::map”未使用模板参数
我在具有mp.find(someString)
.
map<string, int *> mp;
sub = "xyz";
if(mp.find(sub) != map::end) {
doSomething();
}
if
执行语句时出现错误。
我该如何解决这个问题?
使用mp.end()
而不是map::end
更新 :
if(mp.find(sub) != map::end) {
到
if(mp.find(sub) != mp.end()) {
// ^^^^^^^^
您应该将代码更新为:
if(mp.find(sub) != mp.end())
// ^^^^^^^^
该end()
方法返回一个迭代器,该迭代器引用地图容器中的最后一个元素。
http://www.cplusplus.com/reference/map/map/end/
也许您试图使用std::end
who is a C++11
feature :
if(mp.find(sub) != std::end(mp))
// ^^^^^^^^^^^^
在这种情况下,std::end(mp)
具有与 完全相同的行为mp.end()
。