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/