[英]C++ Memory Fault in template function <queue>
我在運行時收到內存錯誤消息,我是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編譯器。
在第二次調用set.front()
,無法保證該集不為空。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.