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;

即可正常运行。

posted @ 2018-12-05 13:39  范加索尔拉  阅读(870)  评论(5编辑  收藏  举报