在不知道它的情况下获取地图的键

时间:2014-01-11 18:11:20

标签: c++ c++11

我的ObjClass * objmap<std::string, OtherClass*> obj2,我想获取所有密钥,因为我想迭代obj2的内容。

我无法知道字符串包含的先验,所以我尝试了这种方式,但是没有用。

    typedef std::map<std::string, ObjClass2*>::iterator it_type;    
    for(it_type iterator = obj.begin(); iterator != obj.end(); iterator++)
    {
        std::cout<<iterator->first<<std::endl;

    }

我可以使用更多整数索引吗?但是如何?

2 个答案:

答案 0 :(得分:2)

请检查下面的代码,你需要迭代obj2元素:

typedef std::map<std::string, ObjClass2*>::iterator it_type;    
for(it_type iterator = obj->obj2.begin(); iterator != obj->obj2.end(); ++iterator)
{
    std::cout<<iterator->first<<std::endl;

}

答案 1 :(得分:2)

如果你说obj的类型为ObjClass *,那么很明显这个结构

it_type iterator = obj.begin(); 

无效。

如果您需要获取obj2的所有键,您可以使用以下方式编写

for ( const auto &p : obj->obj2 )
{
   std::cout << p.first << std::endl;
}