c++ - 在 C++ 中使用带有队列的 map

标签 c++ stl dictionary queue

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

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>

最佳答案

问题是 make_pair 不会创建 map。您需要预先创建 map ,使用 make_pair 将其插入,然后将 map 本身插入 queue

map<int,int> x;
x.insert(make_pair(1,2));
run_time.push(x);

关于c++ - 在 C++ 中使用带有队列的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13444657/

相关文章:

c++ - 如何将数据写入标准输入以供等待标准输入输入的单独线程使用?

C++ VirtualProtect PAGE_NOACCESS 导致崩溃

作用于一串数字的python map函数

c++ - 带有指针参数的函数模板重载决策

c++ - 这是动态分配float变量的正确方法吗?

android - 为什么 native 线程在应用程序处于后台时表现不同?

c++ - 为容器生成成员类型

c++ - 需要澄清 C++ 模板格式

python - 将有序字典列表转换为嵌套列表

python - 字典中特定键的总和值