c++ - STL Map 在搜索尝试时抛出错误

标签 c++ string stl maps

我正在尝试创建一个充满字符串作为键和整数作为值的映射。当我尝试使用它进行搜索时,问题就开始了。有人可以告诉我哪里出错了吗?是我在同一条语句中有两个Map吗?

    invale is "ale"
    roomno = 2;
    // roomlist is a map
    // rinventory is another map

    if( roomlist[roomno].rinventory.find( invale ) != map<string, int>::end());

我得到的错误如下。什么重载函数?这确实是一个冗长的错误。

error C2668: 'std::_Tree<_Traits>::end' : ambiguous call to overloaded function
1>        with
1>        [
1>            _Traits=std::_Tmap_traits<std::string,int,std::less<std::string>,std::allocator<std::pair<const std::string,int>>,false>
1>        ]
1>        c:\program files\microsoft visual studio 9.0\vc\include\xtree(569): could be 'std::_Tree<_Traits>::const_iterator std::_Tree<_Traits>::end(void) const'
1>        with
1>        [
1>            _Traits=std::_Tmap_traits<std::string,int,std::less<std::string>,std::allocator<std::pair<const std::string,int>>,false>
1>        ]
1>        c:\program files\microsoft visual studio 9.0\vc\include\xtree(564): or       'std::_Tree<_Traits>::iterator std::_Tree<_Traits>::end(void)'
1>        with
1>        [
1>            _Traits=std::_Tmap_traits<std::string,int,std::less<std::string>,std::allocator<std::pair<const std::string,int>>,false>
1>        ]
1>        while trying to match the argument list '(void)'    

提前谢谢你。

最佳答案

尝试将其更改为:

if( roomlist[roomno].rinventory.find( invale ) != roomlist[roomno].rinventory.end());

关于c++ - STL Map 在搜索尝试时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8543609/

相关文章:

c++ - 为什么有些线程池实现不使用生产者和消费者模型

c++ - 无法将结构类型的元素添加到 vector 中?

c++ - 需要帮助将 .txt 字符分配到二维数组中。 C++

c++ - 新的 C++11 emplace 方法是否会使以前的 C++98/03 push_back/insert 方法过时?

C++ 当派生类没有实现接口(interface)中的函数时该怎么办

c# - 在字符串中搜索字符串(搜索 HTML 源中的所有 href)

java - 如何将数字转换为单词错误输出为十万而不是千

c++ - 声明与类型不兼容

c++ - 使用 STL 类的 typdef,如 map 、列表等

c++ - 为非 STL 容器创建我自己的迭代器