multimap<int, int> mapStudent;
mapStudent.insert(pair<int, int>(1, 2));multimap<int,multimap<int, int>> mapall;
mapall.insert(pair<int,multimap<int, int>>(3,mapStudent));请教高手一下 这时得到的应该是 3,(1,2)
这时候我想求 3,(1,xxx)符合这种数据要求的 数据个数。
求高人求解

解决方案 »

  1.   

    先获取所有key为3的数据,然后遍历计数
      

  2.   

    pair<int,multimap<int, int>>不用这样吧,直接用pair<int,pair<int, int>>放到vecter不就行了?
      

  3.   


    int num = 0;
    auto range = mapall.equal_range(3);
    for (auto iter = range.first; iter != range.second; iter++)
    {
    auto range1 = (iter->second).equal_range(2);
    num += distance(range1.first, range2.second);
    }
    cout << num << endl;