簡體   English   中英

C ++映射的值是一個指針

[英]C++ Map with value that is a pointer

如果我有地圖類型的std::map<std::string, Person>這里Person是我定義的類,下面是我如何將訪問Person在迭代it

it->second;

但是,如果地圖的類型為std::map<std::string, Person*> ,在這種情況下,該元素將是指向Person的指針,而不是實際的Person 我將如何訪問此Person 例如,這是否正確:

*it->second;

還是這個:

it->*second;

謝謝!

好吧,例如,您有可能訪問it->second->name 但是*(it->second)是正確的(我認為您不需要(),不記得了;請檢查運算符的優先級。)

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM