【发布时间】:2012-01-24 07:23:29
【问题描述】:
由于某种原因,此代码引发错误
// 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 );
}
if 语句抛出错误。它真的没有那么复杂,我想我可以处理这个。所以... roomlist 是一张地图,roomno 是一个整数,rinventory 是一张地图
class AnThing {
public:
AnThing(); // constructor
string name; // name reference
int gtid; // Thing ID
string lcname; // name in lowercase
string m_name;
};
class AnItem : public AnThing {
public:
ItemType m_type;
int imin;
int imax;
int ispeed;
long unsigned iprice;
unsigned int ecoin;
GAttributes m_attributes;
AnItem(); //Constructs an item with "invalid" values
int& Min(); // Returns the min attribute
int& Max(); // Returns the max attribute
int& Speed(); // Returns the speed attribute
};
提前致谢!我将在下面附加我得到的错误(其中有两个)
c:\ucdhb2\gaia\logonserver\v6\gaiaserver.cpp(812):错误 C2679: 二进制 '=' :没有找到采用右手操作数的运算符 输入 'std::_Tree<_traits>::iterator' (或者没有可接受的 转换)1> 与 1> [ 1>
_Traits=std::_Tmap_traits,std::allocator>,false> 1> ] 1> c:\program files\microsoft visual studio 9.0\vc\include\xtree(498): 可能是 'std::_Tree<_traits>::iterator &std::_Tree<_traits>::iterator::operator =(const std::_Tree<_traits>::iterator &)' 1> with 1> [ 1>
_Traits=std::_Tmap_traits,std::allocator>,false> 1> ] 1> 在尝试匹配 参数列表 '(std::_Tree<_traits>::iterator, std::_Tree<_traits>::iterator)' 1> 与 1> [ 1>
_Traits=std::_Tmap_traits,std::allocator>,false> 1> ] 1> 和 1> [ 1>
_Traits=std::_Tmap_traits,std::allocator>,false> 1> ] 1>c:\ucdhb2\gaia\logonserver\v6\gaiaserver.cpp(812):错误 C2678: binary '!=' : 没有找到接受左操作数的运算符 输入 'std::_Tree<_traits>::iterator' (或者没有可接受的 转换)1> 与 1> [ 1>
_Traits=std::_Tmap_traits,std::allocator>,false> 1> ] 1> c:\program files\microsoft sdks\windows\v6.0a\include\guiddef.h(197): 可能是 'int 运算符 !=(const GUID &,const GUID &)' 1> c:\program files\microsoft 视觉工作室 9.0\vc\include\xtree(314): 或 'bool std::_Tree<_traits>::const_iterator::operator !=(const std::_Tree<_traits>::const_iterator &) const' 1> with 1>
[ 1>
_Traits=std::_Tmap_traits,std::allocator>,false> 1> ] 1> 在尝试匹配 参数列表 '(std::_Tree<_traits>::iterator, std::_Tree<_traits>::iterator)' 1> 与 1> [ 1>
_Traits=std::_Tmap_traits,std::allocator>,false> 1> ] 1> 和 1> [ 1>
_Traits=std::_Tmap_traits,std::allocator>,false> 1> ]
【问题讨论】:
-
roomlist和rinventory的类型是什么? -
地图
房间列表; map rinventory; -
在问题中发布它们,以及
AnItem的定义。