首页 文章

使用boost :: shared_ptr编译std :: map时出错

提问于
浏览
0

我想在vs2005中编译我的代码 . 我正在使用std :: map和boost :: shared_ptr(v1.47.0)我的代码看起来像这样

struct B {
    int a;
}
typedef boost::shared_ptr<B> K;

std::map<const std::string, K > mymap;

//some code

std::map<const std::string, K >::iterator it;
for (it = mymap.begin(); it < mymap.end(); it++ )
{
     //do something
}

编译器在for语句中给出错误 . 以下是错误

错误C2784:'bool boost :: operator <(const boost :: intrusive_ptr&,const boost :: intrusive_ptr&)':无法从'std :: _ Tree <_Traits>中推断'const boost :: intrusive_ptr&'的模板参数::迭代器” .

任何帮助表示赞赏 . 谢谢 .

1 回答

  • 1

    您正在使用错误的运算符来检查 mymap.end() . 将循环更改为

    for (it = mymap.begin(); it != mymap.end(); it++ )
    

相关问题