C++ 在c++;

C++ 在c++;,c++,stl,map,queue,C++,Stl,Map,Queue,当尝试在代码下面运行时,它编译时没有任何错误 int main() { queue<map<int,int> >run_time; } intmain() { 排队运行时间; } 但是,现在,当我尝试使用下面的代码将某些内容推入队列时 int main() { queue<map<int,int> >run_time; run_time.push(make_pair(1,2)); run_time.push(m

当尝试在代码下面运行时,它编译时没有任何错误

int main()
{
    queue<map<int,int> >run_time;
}
intmain()
{
排队运行时间;
}
但是,现在,当我尝试使用下面的代码将某些内容推入队列时

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

    run_time.push(make_pair(1,2));
    run_time.push(make_pair(3,4));
}
intmain()
{
排队运行时间;
运行时间推送(使配对(1,2));
运行时间。推送(形成一对(3,4));
}
我得到的错误是:


调用“std::queue”时没有匹配函数问题是
make\u pair
不会创建
映射。您需要事先创建映射,使用
make\u pair
插入映射,然后将映射本身插入
队列

map<int,int> x;
x.insert(make_pair(1,2));
run_time.push(x);
mapx;
x、 插入(形成一对(1,2));
运行时间推送(x);

问题在于
make\u pair
不会创建
映射。您需要事先创建映射,使用
make\u pair
插入映射,然后将映射本身插入
队列

map<int,int> x;
x.insert(make_pair(1,2));
run_time.push(x);
mapx;
x、 插入(形成一对(1,2));
运行时间推送(x);

您有一个映射队列,而不是成对的队列。您需要将地图推入其中。

您有一个地图队列,而不是成对的队列。您需要将映射推入其中。

根据问题中给出的代码,您似乎想要创建一个队列,队列的每个元素都是由另外两个元素组成的一组。这可以使用类模板“pair”或“tuple”轻松完成

对于pair[1]您编写
模板结构对而对于元组[2]
模板类元组

元组是两个以上成员可以组成组的对的推广。我觉得代码中的错误在于,您正在初始化一个映射,但没有将其用作映射,您希望将映射的各个元素推送到队列中,这破坏了创建映射的目的。Pair和Tuple创建单独的对象,这些对象可以与其他类似对象分开处理,它们的行为类似于使用struct来形成不同数据类型的组

[1]


[2]

根据问题中给出的代码,您似乎想要创建一个队列,队列的每个元素都是由另外两个元素组成的组。这可以使用类模板“pair”或“tuple”轻松完成

对于pair[1]您编写
模板结构对而对于元组[2]
模板类元组

元组是两个以上成员可以组成组的对的推广。我觉得代码中的错误在于,您正在初始化一个映射,但没有将其用作映射,您希望将映射的各个元素推送到队列中,这破坏了创建映射的目的。Pair和Tuple创建单独的对象,这些对象可以与其他类似对象分开处理,它们的行为类似于使用struct来形成不同数据类型的组

[1]


[2]

你为什么认为你首先需要一个
队列
?你想完成什么?虽然这种组合可能有真正的用途,但在我看来,你可能真的需要其他东西。你为什么认为你首先需要一个
队列
?你想完成什么?虽然这种组合可能有真正的用途,但在我看来,你可能真的想要别的东西。