1

以下のコードを実行しようとすると、エラーなしでコンパイルされます。

int main()
{
    queue<map<int,int> >run_time;
}

しかし、今、以下のコードを使用してキューに何かをプッシュしようとすると.

int main()
{
    queue<map<int,int> >run_time;

    run_time.push(make_pair(1,2));
    run_time.push(make_pair(3,4));
}

次のようなエラーが発生します。

no matching function for call to 'std::queue<std::map<int,int,std::less<int>,std::allocator<std::pair<const int,int>

4

3 に答える 3

4

問題は、 をmake_pair作成しないことmapです。事前にマップを作成し、 でマップにmake_pair挿入し、マップ自体を に挿入する必要がありますqueue

map<int,int> x;
x.insert(make_pair(1,2));
run_time.push(x);
于 2012-11-18T21:16:02.743 に答える
3

ペアのキューではなく、マップのキューがあります。マップをプッシュする必要があります。

于 2012-11-18T21:16:21.600 に答える