我在运行时收到内存错误消息,我是 STL 的新手,所以我不确定我是否需要以特殊方式处理队列,比如在函数中删除它们或诸如此类。
我将错误追溯到这个函数
template <typename T>
bool contains(std::queue<T> set, T val){
std::queue<T> hold;
bool isContained = false;
if (set.front() == val) isContained = true;
while(!set.empty()){
hold.push(set.front());
set.pop();
if (set.front() == val) isContained = true;
}
while(!hold.empty()){
set.push(hold.front());
hold.pop();
}
return isContained;
}
在我的 main() 中,我成功地为队列调用了这个函数 20 次,然后在第一次在队列上调用该函数时,程序在函数的两个循环之间吐出一条“内存错误”消息。
我正在使用 gnu 编译器。