0

基本問題ベクトルのベクトルの使い方を教えてください。例を挙げてみましょうvector< vector<int> > help。それぞれが int のベクトルである int のベクトルなのか、それとも int のベクトルのベクトルなのかわかりませんか? 使い方もよくわかりません。

サンプルコード

vector< vector<int> > test[500];
test[0].emplace_back(1);
cout << test[0][0];
test[50].emplace_back(4);
cout << " " <<test[50][0];

-console-
1 50 //this is not what happens btw, but it is the desired results

免責事項私は朝の大部分をこれをテストしてグーグルで過ごしました。助けてください:)私は自分のハードウェアをやりました。ベクトルのベクトルに関するドキュメントが見つかりません。また、すべての正しいライブラリがあり、名前空間 std を使用しています。私は初心者で、名前空間が悪い習慣であることは理解していますが、今のところ私にとっては非常に便利です。

基本的に私が欲しいのは、intのベクトルである各ptで満たされたベクトルのセットサイズです。私はむしろ別のクラスの道に行きたくありません。int のベクトルのベクトルは正しいものですか?

ありがとうございました :)

4

4 に答える 4

2

これは int のベクトルです。

std::vector<int> v;

これは int のベクトルのベクトルです:

std::vector<std::vector<int>> v2;

これは、intのベクトルのベクトルの配列であり、これがあなたが持っているものです:

std::vector<std::vector<int>> test[500];

その配列の各要素は ですstd::vector<std::vector<int>>。その一つもそうtest[0]です。

500 個のデフォルトで構築された int のベクトルのベクトルが必要な場合は、

std::vector<std::vector<int>> test(500);
于 2013-05-02T18:01:07.183 に答える
1

あなたが持っているのはvector-of-の配列vectorです。これは、2 つのインデックスを使用してデータにアクセスしているため、必要なものではないと私は信じています。

コンストラクターの初期化をタイプミスしただけかもしれません。

vector< vector<int> > test(500);   // Note () instead of [] here.

これにより、500 個の内部ベクトルが事前に作成されたベクトルのベクトルが作成されます。その後、コードの残りの部分が機能するはずです!

于 2013-05-02T18:00:49.043 に答える