我的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;
}