在c ++中插入多个对

时间:2014-10-10 17:04:59

标签: c++ map stl

我有这样的地图:

map<string, map<int, int>> collector;  

我不知道如何在地图中插入数据。如果我有

map<string, int> collector;

只使用键值我会使用

collector.insert(pair<string, int>)(name,money));

但是当我们在地图中有地图时插入的方式是什么。我试着这样做:

typedef map<int, int> map_;
  for(iteration = collector.begin(); iteration != collector.end(); iteration++) {
    iteration = collector.find(word);
    if(iteration == collector.end()) {
        iteration = collector.insert(map_::value_type(num,num).first;
    }
}

这种方式对我不起作用。

1 个答案:

答案 0 :(得分:1)

以下是一些插入数据结构的方法:

#include <iostream>  // cout
#include <map>
#include <string>
#include <utility>  // make_pair

using namespace std;

int main()
{
    using Collector = map<string, map<int, int>>;

    Collector collector;

    collector["USD"] = Collector::mapped_type{ { 1, 3 }, { 0, 8 } };

    collector["EUR"].insert(make_pair(4, 5));
    collector["EUR"].insert(make_pair(6, 7));

    collector["CHF"][2] = 4;

    const Collector::mapped_type jpyIntegers { { 10, 20 }, { 100, 200 } };

    collector.insert(make_pair("JPY", jpyIntegers));

    collector["MMK"];

    for (const auto& a: collector) {
        cout << a.first << ": ";
        for (const auto& i: a.second) {
            cout << "(" << i.first << "|" << i.second << ")";
        }
        cout << "\n";
    }
}