如果我有std::map<std::string, Person>
类型的地图,其中Person
是我定义的类,以下是我在迭代器Person
访问it
的方法:
it->second;
但是,如果地图的类型为std::map<std::string, Person*>
,那么该元素将是指向Person
的指针,而不是实际的Person
。那我如何访问Person
?例如,这是正确的:
*it->second;
或是这样:
it->*second;
谢谢!
答案 0 :(得分:2)
例如,你大多数可能会访问it->second->name
。但*(it->second)
是正确的(我认为你不需要(),不记得;检查运算符优先级。)
答案 1 :(得分:0)
Person const & person = *it->second;
std::cout << person.name << std::endl;
std::cout << person.address << std::endl;
//etc
或者只是
std::cout << it->second->name << std::endl;
std::cout << it->second->address << std::endl;