在 std::map 中插入数据
insert data in a std::map
我有以下容器:
map<int,string,string> data;
我一直在尝试使用以下代码(一次一个)在该地图中存储信息,但其中 none 个有效。
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 中存储数据吗?
谢谢
你可以写
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;
}
我有以下容器:
map<int,string,string> data;
我一直在尝试使用以下代码(一次一个)在该地图中存储信息,但其中 none 个有效。
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 中存储数据吗?
谢谢
你可以写
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;
}