[STL] list<int>操作 segmentation fault
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
餓死抬頭
希望得到的正確結果:
不要 run-time error
程式跑出來的錯誤結果:
segme....
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Ubuntu 10.04
有問題的code: (請善用置底文標色功能)
struct BUCKET
{
list<int> cellit;
};
BUCKET *listA, *listB;
main:
listA = new BUCKET[...];
listB = net BUCKET[...];
for(...)
{
從BUCKET中取出key最大的第一個元素
int n = listA[max_key].front();
listA[max_key].pop_front();
process();
}
del ...
del ...
end
process:
...
for list<int>::iterator it := 某個list<int>取出的值
then do
operate(*it, old, new)
end
operate: n, old, new
listA[old].erase(一個確定存在listA[old]內的it)
listA[new].push_back(n)
end
補充說明:
標紅色那行發生了問題...
即是取出的list.front() 為無意義的值
進一步要檢查list.size()或調用 begin(), end() 等method
都出現segmantation fault
反倒是list.empty()為false 沒有出錯
google了下 都是抱怨文 沒有解決文...
嗯 ... 一直想說STL的可靠度不低的...
code可能不甚清楚... 希望有版友碰過相關問能 能提供解答
感謝
--
◢/ ◢/ ╮ ╮ ╭┬ ╭─┐┬╮
█ █◤ ◢█▍◢██◣ ─┼─┬┼─ ╰┼──┼╮ │ ╯╮│││
█/█◤ █▉ █▉██ ╮│ ││ ╭─┼─╮ │ └┴┘└┼
██// █▉ ◥███ ├┼╮├┼╮ │ │ │ │ ├─┼─╮
█ █// █▉ ◥██◤ ││ │││ ┴─┼─┴ │ ╭╯├─╮
█◤ █◤ ╯│─╯│╰ ○╰─╯╰─╯ ○ ┴ ╯ ┴ ╰
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.85.35.216
→
11/08 19:49, , 1F
11/08 19:49, 1F
→
11/08 19:49, , 2F
11/08 19:49, 2F
推
11/08 20:18, , 3F
11/08 20:18, 3F
→
11/08 20:19, , 4F
11/08 20:19, 4F
→
11/08 20:19, , 5F
11/08 20:19, 5F
→
11/08 20:26, , 6F
11/08 20:26, 6F
→
11/08 20:27, , 7F
11/08 20:27, 7F
→
11/08 20:34, , 8F
11/08 20:34, 8F
推
11/08 21:16, , 9F
11/08 21:16, 9F
→
11/08 21:16, , 10F
11/08 21:16, 10F
推
11/08 21:18, , 11F
11/08 21:18, 11F
→
11/08 21:20, , 12F
11/08 21:20, 12F
→
11/08 22:42, , 13F
11/08 22:42, 13F
推
11/11 13:11, , 14F
11/11 13:11, 14F
→
11/21 23:42, , 15F
11/21 23:42, 15F