首页 文章

在std :: map中插入数据[关闭]

提问于
浏览
-2

我有以下容器:

map<int,string,string> data;

我一直在尝试使用以下代码(一次一个)将信息存储在该 Map 中,但它们都不起作用 .

data.insert( m, f, l );
data.insert( map<int,string,string>(m, f, l) );
data.insert( pair<int,string,string>(m, f, l) );

任何人都知道如何在std :: map中存储数据?

谢谢

1 回答

  • 1

    你可以写

    map<int, std::pair<string, string> > data;
    

    创建一个 Map ( std::map ),其键是一个 int ,数据是两个 string .

    要插入数据,您可以编写

    data.insert(std::make_pair<int, std::pair<string, string> >(m, std::make_pair<string, string>(f, l));
    

    或者更简单

    data[m] = std::make_pair<string, string>(f, l);
    

    完整示例:

    #include <iostream>
    #include <map>
    #include <string>
    #include <utility>
    
    using std::map;
    using std::string;
    
    int main(void) {
        map<int, std::pair<string, string> > data;
        int m;
        string f, l;
    
        // insert data
        m = 20; f = "hoge"; l = "fuga";
        data.insert(std::pair<int, std::pair<string, string> >(m, std::pair<string, string>(f, l)));
        m = 10; f = "foo"; l = "bar";
        data[m] = std::pair<string, string>(f, l);
    
        // display data
        for (map<int, std::pair<string, string> >::iterator it = data.begin(); it != data.end(); it++) {
            std::cout << it->first << " -> " << it->second.first << ", " << it->second.second << '\n';
        }
    
        return 0;
    }
    

相关问题