我有以下代码。在第5行中取消引用时,我得到了(*it)->sec
的错误值。而在第8行,我可以获得正确的价值。我注意到的唯一区别是一个在for循环中,另一个在for循环之外。我在这里遗漏了一些微妙的观点。我基本上想要获取向量中第一个元素的成员值。在for循环之前(之外)获取第一个(*it)->sec
的正确方法是什么?
void print_allAddresses(std::vector<EntryObj *> EntryObj_vec){
std::cout << "time(sec:microsec) dataType memoryValue" << std::endl;
std::vector<EntryObj *>::iterator it;
it = EntryObj_vec.begin();
std::cout << (*it)->sec << std::endl; //EntryObj_vec.front()->sec also wrong here.
for(it = EntryObj_vec.begin(); it != EntryObj_vec.end(); ++it){
if(!(*it)->parameters.empty()){
std::cout << (*it)->sec << "." << (*it)->microsecond << " ";
std::map<std::string, std::string>::iterator it_map;
for (it_map = (*it)->parameters.begin(); it_map != (*it)->parameters.end(); it_map++){
std::cout << "(" << it_map->first<< ")" << " " << it_map->second << std::endl;
}
}
}
return;
}