C++ 包含 STL::d eque 的 STL::map (无法从 'void' 转换为类*)



当我试图将元素从deque分配给用户定义的类时,会出现以下错误。

map<unsigned int, std::deque<Order*>>::iterator itBuyPrices =buyPrices.begin();
Order *buyOrder;
buyOrder = itBuyPrices->second.pop_back();

赋值行错误(第三行(:错误C2440"=":无法从"void"转换为"Order*">

deque::pop_back()返回void,即不返回任何内容。您需要使用deque::back()访问队列中的最后一个项目,然后调用pop_back()将其删除,例如:

map<unsigned int, std::deque<Order*>>::iterator itBuyPrices = buyPrices.begin();
Order *buyOrder = itBuyPrices->second.back();
itBuyPrices->second.pop_back();

最新更新