在不知道的情况下获取地图的钥匙

get keys of map without know its

本文关键字:地图 钥匙 获取 情况下 不知道      更新时间:2023-10-16

我的ObjClass * obj有一个map<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;
    }

也许我可以使用另一个整数索引?但是怎么做呢?

请检查下面的代码,您需要遍历 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;
}

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

it_type iterator = obj.begin(); 

无效。

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

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