怎么做我迭代std :: map <std :: string,shared_ptr <a>&gt;中的元素在c ++中</std :: string,shared_ptr <a>

时间:2014-04-25 16:08:15

标签: c++ visual-c++ boost boost-serialization

如何比较2个地图的数据,如

std::map<std::string,shared_ptr<A>>其中A是struct类型。我需要在数据类型序列化后进行比较。

例如。

  struct A
 {
     int age;
    std::string name;
 }

感谢

1 个答案:

答案 0 :(得分:2)

要遍历地图,请使用迭代器

typedef std::map<std::string, shared_ptr<A> >  Container_Type;
Container_Type my_map;
Container_Type::iterator iter;
for (iter = my_map.begin(); iter != my_map.end(); ++iter)
(
  // Do stuff here
}

可以通过以下方式访问地图的字段:

  std::string key;
  key = iter->first;
  shared_ptr<A> value = iter->second;