当尝试运行下面一段代码时,它编译没有任何错误。
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/