每个问题的提升
std::map< std::string , std::string > matrix_int;
typedef std::pair< std::string , std::string > lp_type;
BOOST_FOREACH( lp_type &row, matrix_int ){
}
这是不能遵守的: 错误 C2440:“初始化”:无法从“std::pair<_Ty1,_Ty2>”转换到“lp_type &”
当我在元素类型中有“,”时,boost doc说我可以使用typedef或预定义一个var; 但是当我想要获得参考时我该怎么办?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你的 typedef 不正确;它需要是:
映射对中的关键元素是 const 限定的。
使用
value_type
typedef 会更简洁一些;这样你就不会重复类型信息:Your typedef is incorrect; it needs to be:
The key element in the map pair is const-qualified.
It would be a bit cleaner to use the
value_type
typedef; this way you don't repeat the type information:请参阅 是否可以将 boost::foreach 与 std::map 一起使用? 。
看起来你需要这样做:
See Is it possible to use boost::foreach with std::map?.
Looks like you need to do:
我认为詹姆斯·麦克内利斯是对的。我将添加建议,即您利用 std::map 提供的
value_type
typedef。那么你的代码可能如下所示:I think James McNellis is right. I'll add the suggestion that you take advantage of the
value_type
typedef that std::map provides. Then your code could look like this: