1. 程式人生 > >unordered_map 遇到 vector subscript out of range 的錯誤提示

unordered_map 遇到 vector subscript out of range 的錯誤提示

錯誤型別

當呼叫unordered_map的函式的時候,會出現如下問題:

使用linux執行則會提示
float exeption(core dump)


原因

遇到vector subscript out of range 很可能是因為 unordered_map 沒有被正確地初始化推薦使用new來初始化,減少一些版本相容的問題。

例子

例如:

使用 calloc () 初始化unordered_map 的物件,會出現錯誤:

dyn_tbl_t* ret = (dyn_tbl_t*)calloc(1, sizeof(dyn_tbl_t));

改為

dyn_tbl_t* ret = new dyn_tbl_t;

即可正常執行。