【发布时间】:2022-01-14 00:50:37
【问题描述】:
从长远来看,我注意到在 STL 双端队列(双端队列)开头插入元素时会发生崩溃。这是等效的代码sn-p:
void func(std::deque<float> &list, float val)
{
long curr_sz = list.size();
if (curr_sz < 1)
{
list.insert(list.begin() + 0, val);
return;
}
}
代码在 list.insert(list.begin() + 0, val) 处崩溃。从长远来看,崩溃仅发生在 Edge 设备上。在 PC 版本中,它不会崩溃。 请帮助我可能是什么原因。
【问题讨论】:
-
函数内的代码可以简化为
if (list.empty()) { list.emplace_front(val); } -
请显示minimal reproducible example,如果此代码崩溃,则可能是其他原因损坏了
list,或者您的程序只是内存不足