私はC++コンパイラmaximum size of std::vectorによって制限されていない他の回答を読んでいます。 1つの目的のためにベクトルを使用しようとしており、10^19のアイテムが必要です。stl "ベクトルが長すぎます"
typedef struct{
unsigned long price, weight;
}product;
//inside main
unsigned long long n = 930033404565174954;
vector<product> psorted(n);
プログラムは最後のステートメントでブレークします。私はn
で初期化するのではなく、resize(n)
をしようとした場合、その後もメッセージとプログラムブレーク:
vector<T> too long
std::length_error at memory location
iは、ベクターに入れた後、価格にaccourdingデータをソートする必要があります。私は何をすべきか ?
なぜC++で 'typedef struct'を使用していますか?多分誰かがやるべきことを学んでいないでしょうか? :-) –
930033404565174954は10^9よりもはるかに大きいです。 –
'sizeof(std :: vector :: size_type)'をチェックしてください。それはあなたに最大のサイズを知らせます。 –