// Map created
std::map<int, std::vector<int>> _map;
// Key/Data inserted
_map.insert(std::pair<int, std::vector<int> >(0, { i }));
// Display values [ERROR]
for (const auto &p : _map)
{
std::cout << "m[" << p.first << "] = " << p.second << '\n';
}
這是一個非常簡單的程序,用於創建地圖,插入值並通過遍歷整個地圖顯示兩個鍵/對。 我能夠顯示地圖鍵(p.first),但我無法顯示數據的值(p.second)。無法顯示地圖數據
錯誤C2679:二進制「< <」:沒有操作員發現它採用類型「常量性病::矢量>」(或沒有可接受的轉化率)
你認爲p.second返回什麼?它返回一個整型向量,所以你需要編寫一個inner for循環來遍歷向量並在那裏打印整型。矢量不定義<<運算符。你也使用新的標準,所以,而不是臨時配對插入功能,你可以使用大括號initialisation._map.insert({0,{i}}) – ChajusSaib
我無法訪問p.second值,那麼如何我能用它來創建嵌套循環嗎?你能舉個小例子嗎?謝謝 – Daqs
你可以訪問它。 std :: cout沒有運算符<<,它可能會將vector作爲參數。像這樣添加一些內部循環:'for(auto&pp:p.second){std :: cout << pp; }' – Ari0nhh