我有以下容器:
map<int,string,string> data;
我一直在尝试使用以下代码(一次一个)将信息存储在该地图中,但它们都不起作用。
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中存储数据?
谢谢
答案 0 :(得分:1)
你可以写
map<int, std::pair<string, string> > data;
创建一个地图(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;
}