[英]How to print out key and values from a map as a list in C++
我試圖從具有字符串和指針類的映射中打印出多個記錄。 這是這篇文章的后續內容: how to dereference a pointer of a map of pointers to objects in c++ 。 1. 我在將對象類推回向量時遇到問題。 2. 我想打印一張地圖中的多個記錄。
我曾嘗試使用向量,但不確定這是否可行。 我從中得到了一些錯誤。 我知道在 Java 中你可以使用數組列表來嘗試刷新我的 C++。 您從上述鏈接解決方案中獲得的任何好的示例。
class Employee
{
public:
int employeeID;
Employee()
{
employeeID = 123;
}
};
int main(int argc, char* argv[]) {
std::map<std::string, Employee *> *_employeePayroll;
std::map<std::string, Employee *> _employeeID;
std::map<std::string, Employee *>::const_iterator itEmployeeID;
_employeePayroll = &_employeeID;
(*_employeePayroll)["Karl"] = new Employee;
(*_employeePayroll)["George"] = new Employee;
vector<std::string> v1;
v1.push_back(itEmployeeID->first);
// Here I am having issues on pushing back an object class into a
// vector. maybe as follows:
v1..push_back(itEmployeeID->second);
v1.shrink_to_fit();
for ( auto it = v1.begin(); it != v1.end(): it++ )
{
std::cout << *it;
std::cout << std::endl;
}
return 0;
}
我想從具有字符串和指針類的映射中打印出多個記錄。
您可能會執行以下操作:
int main() {
std::map<std::string, Employee> employee {
{"Karl", Employee{42}},
{"George", Employee{59}},
};
for (const auto& p : employee ) {
std::cout << p.first << std::endl; // "Karl", "George"
// p.second is Employee object.
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.