美文网首页
2019-08-18(Leetcode报错)

2019-08-18(Leetcode报错)

作者: _NewMoon | 来源:发表于2019-08-18 16:45 被阅读0次

今天在写leetcode的第47题时,遇到一个报错,如下:

runtime error: reference binding to null pointer of type 'value_type' (stl_vector.h)

这个报错提示,对vector容器的使用发生了错误,可能发生了数组越界,但我仔细检查了一下代码,并没有发生数组越界的情况,所以就在网上查了一下,发现还有一种原因:
使用vector时并没有申请空间
这究竟是怎么一回事,之前用vector时一直没有发生错误,所以我对比了47题的代码与之前用过vector的代码,发现在写47题时,是把vector当成数组用的:

vector<int> now;
...
now[i] = nums[step];

其实,这个错误非常明显,你并没有告诉计算机now的长度,计算机根本不认识now[ i],
所以我们在把vector当成数组使用时,我们需要向数组那样先声明一下数组的长度,于是,只要加上一句:

now = vector<int>(n);
//n为数组的长度

之前在使用vector时,只用到了(push_back,pop_back...几个不需要申请空间的操作),
所以没有发生报错。

总结

出现这个错误的原因我觉得有两点:
1.写的题目太少了,没有及时总结
2.对STL的几个工具使用理解太浅显,只会基本操作,今后还有多多使用,熟能生巧,多多总结,可以避免踩坑。

相关文章

网友评论

      本文标题:2019-08-18(Leetcode报错)

      本文链接:https://www.haomeiwen.com/subject/dsorsctx.html