vector length_error

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/

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章