簡體   English   中英

是否可以在地圖中插入具有地圖類型值的對?

[英]Is it possible to insert a pair with a map type value into another map?

嘗試查找此內容,但似乎無法找到詳細的答案。 說我有一張地圖:

std::map<int, string> categoryMap;

我想用鍵和值創建第二個映射,這些鍵和值僅在與第一個映射的特定鍵關聯時才可以訪問。 第二張地圖也將類似:

std::map<int, string> itemMap;

我試圖做某種插入功能來嘗試一下

categoryMap.insert(std::pair<int, map<int, string>>(itemValue, itemMap));

我收到的錯誤聲稱“沒有重載函數的實例與參數列表匹配”。 還有另一種方法可以解決這個問題嗎?

是的,可以,但是您要插入的對的類型( 模板參數int, map<int, string>與映射類型int, string不匹配。

為了能夠運行您的插入調用:

categoryMap.insert(std::pair<int, map<int, string>>(itemValue, itemMap));

必須使用與您要插入的項目相同的模板類型來定義categoryMap ,即:

std::map<int, map<int, string>> categoryMap;

在線查看。

#include <iostream>
#include <string>
#include<map>

using namespace std;

int main()
{
    std::map<int, std::map<int, string>> categoryMap;
    std::map<int, std::string> itemMap;
    itemMap.insert(std::pair<int, std::string>(1, "abc"));
    itemMap.insert(std::pair<int, std::string>(2, "xyz"));
    categoryMap.insert(std::pair<int, std::map<int, std::string>>(1, itemMap));
}

暫無
暫無

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

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