gpt4 book ai didi

c++ - 修改 map 中的队列

转载 作者:行者123 更新时间:2023-11-28 00:50:04 25 4
gpt4 key购买 nike

在 map 中修改队列时遇到问题。

map<string , queue<item*> > itemList; // what the map creation looks like

map<string, queue<item*> >::const_iterator itr; // creating an iterator

//for every item in a warehouse
for(itr = itemList.begin(); itr != itemList.end(); ++itr)
{
//while there are items in the queue with 1 day shelf life
while(itr->second.front()->getLife() == 1)
{
//throw them away
itr->second.pop();
}
}

但我一直收到错误提示:

错误:将“const std::queue >>”作为“std::queue >>& std::queue >>::operator=(const std::queue >>&)”的“this”参数传递丢弃限定词

在此先感谢您对此的任何帮助。 :-(

最佳答案

您正在通过 const_iterator 访问 map 元素,因此您无法修改它们(严格来说,您只能调用元素上的 const 方法,而 std::queue::pop() 不是一个)。尝试使用非常量 iterator 代替:

map<string, queue<item*> >::iterator itr;

关于c++ - 修改 map 中的队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14620303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com