reserve length error 'std::length_error' what(): vector::_M_fill_insert
原因就是vector 预留长度(resize()函数的参数)不对。
例如:
c++参考文档中的例子。
// length_error example
#include <iostream> // std::cerr
#include <stdexcept> // std::length_error
#include <vector> // std::vector
int main (void) {
try {
// vector throws a length_error if resized above max_size
std::vector<int> myvector;
myvector.resize(myvector.max_size()+1);
}
catch (const std::length_error& le) {
std::cerr << "Length error: " << le.what() << '\n';
}
return 0;
}
即resize分配了最大 的长度+1,
还有一种就是 V.resize(n).但是n不确定,(代码出现这个错误,没有对n赋值,所有有时可以运行,有时不能n为负数时)
参考文献:cplusplus.com/reference/stdexcept/length_error/