CMap或CMapPtrToPtr(CMap or CMapPtrToPtr)
IT问题网 2021-02-19 00:00:00
问 题
嗨,
i希望将对象存储在 cmap
中我想用我的班级作为关键和价值。
比如说
class a {
public :
cstring name;
}
现在我想在a code> cmap
所以对于这个我使用 cmapptrtoptr 。
cmapptrtoptr map;
a * key1 = new a();
key1-gt; name = " 1";
a * value1 = new a();
value1-gt; name = " one";
map.setat(key1,value1);
// 到目前为止没有问题,但在遍历地图时出现错误
表示
position position = map.getstartposition();
while (position!= null){
a * lo_key = new try1 ();
a * lo_value = new try1();
map.getnextassoc(位置,键,值); // 这里我收到错误
}
错误是:
无法将参数2从''a *''转换为''void *amp; ''
我如何获得密钥和价值?
使用cmapptrtoptrs是正确的吗?或者还有其他方法吗?
解决方案
试试看:):
class a;
typedef ctypedptrmaplt; cmapptrtoptr,a *,a *gt; cyourmap;
void someiteration(cyourmapamp; map)
{
position pos(map.getstartposition());
while (pos){
a * pakey(null); // null- 因为它确实从getnextassoc收到答案:)
a * pavalue(空值); // null- 因为它确实从getnextassoc收到答案:)
map.getnextassoc( pos,pakey,pavalue);
if (pakeyamp;amp; pavalue){
// 在这里使用答案:)
}
}
}
标签:或者
分享:
热门推荐