C++ 使用我的对象进行迭代停止工作

C++ 使用我的对象进行迭代停止工作,c++,map,iterator,C++,Map,Iterator,出于某种原因,此代码会引发错误 // map<int, AnItem> roomlist; // map<string, long> rinventory map<int, AnItem>::iterator it; for ( it = roomlist[roomno].rinventory.beg/in(); it != roomlist[roomno].rinventory.end(); it++ ) { if( (*it).

出于某种原因,此代码会引发错误

// map<int, AnItem> roomlist;
// map<string, long> rinventory

map<int, AnItem>::iterator it;

for ( it = roomlist[roomno].rinventory.beg/in(); it != roomlist[roomno].rinventory.end(); it++ )    {

        if( (*it).second.name == "Stock" )
            tmpitem.append( strmug );
    }
提前谢谢!我将在下面附加我得到的错误(有两个)

c:\ucdhb2\gaia\logonserver\v6\gaiaserver.cpp(812):错误C2679: 二进制“=”:未找到右操作数为的运算符 键入“std::Tree::iterator”(或者没有可接受的 转换)1>与1>[1>
_Traits=std::\u Tmap\u Traits,std::allocator>,false>1>]1>c:\program files\microsoft visual studio 9.0\vc\include\xtree(498):可能是 'std::_Tree::迭代器 &std::_树::迭代器::运算符=(常量) std::_Tree::iterator&)'1>带有1>[1>
_Traits=std::\u Tmap\u Traits,std::allocator>,false>1>]1>尝试匹配 参数列表“(标准::_树::迭代器, std::_Tree::iterator)'1>与1>[1>
_Traits=std::\u Tmap\u Traits,std::allocator>,false>1>]1>和1>[1>
_Traits=std::\u Tmap\u Traits,std::allocator>,false>1>] 1> c:\ucdhb2\gaia\logonserver\v6\gaiaserver.cpp(812):错误C2678: 二进制“!=”:找不到左操作数为的运算符 键入“std::Tree::iterator”(或者没有可接受的 转换)1>与1>[1>
_Traits=std::\u Tmap\u Traits,std::allocator>,false>1>]1>c:\program files\microsoft sdks\windows\v6.0a\include\guiddef.h(197):可以是“int运算符” !=(常量GUID&,常量GUID&)“1>c:\program files\microsoft visual studio 9.0\vc\include\xtree(314):或“bool” std::_树::常量迭代器::运算符=(常数 std::_Tree::const_迭代器&)const'1>带1>
[1>
_Traits=std::\u Tmap\u Traits,std::allocator>,false>1>]1>尝试匹配 参数列表“(标准::_树::迭代器, std::_Tree::iterator)'1>与1>[1>
_Traits=std::\u Tmap\u Traits,std::allocator>,false>1>]1>和1>[1>
_Traits=std::\u Tmap\u Traits,std::allocator>,false>1>]

你的迭代器

map<int, AnItem>::iterator it;
map::迭代器;
需要的类型

map<string, long>::iterator it;
map::迭代器;

根据您的评论(即您正在迭代
rinventory
,而不是
roomlist
)。

什么是
roomlist
rinventory
?映射roomlist;地图库;在问题中发布它们,以及
AnItem
的定义。谢谢,但我仍然得到相同的错误+一个新的错误C2228:“.name”的左边必须有class/struct/union。我认为在这个循环中有一些非常错误:如果你真的想迭代
rinventory
,那么
(*it)。第二个
长的
,但是您正在向它请求一个成员
名称
。你能再想想你想在代码中实现什么吗?嗯,当我把它改成它的时候,它工作得很好!但是我仍然需要找到我想在循环中使用的对象:(我认为我仍然可以实现它。如果没有,我会回来的。我真的很感谢你的帮助!
map<string, long>::iterator it;