我的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;
}
我可以使用更多整数索引吗?但是如何?
答案 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;
}