0

構造体を定義しました

struct path{
    char type;
    bool visit;
    bool inPath;
    int level;
}

このタイプの構造体のベクトルのベクトルも定義しました

vector < vector<path> > spaceStation(numLevels*levelSize,vector<path> (levelSize));

2 つの質問があります。

1) 行数が (numLevels*levelSize) に関係し、列が levelSize に関係するようにベクトルを定義しました

2) ベクトルの個々の要素にアクセスする場合、その中に構造体の要素を設定するにはどうすればよいですか。.at() メンバー関数を使用してほとんど成功しませんでした

4

2 に答える 2

1

再: 1

はい。しかし、あなたが代わりにこれをやりたかったように感じずにはいられません:

vector < vector<path> > spaceStation(numLevels,vector<path> (levelSize))

ベクトルに関して、「行」と「列」という用語を使用することは完全にあなたの想像に過ぎないことに注意してください。別のベクトルの中にベクトルがあります。これは配列の配列のようなものです - 特別なジオメトリは暗示されていません。

Re:2

ベクトルのベクトルがあるため、1 つだけでなく 2 つのインデックスを使用する必要があります。

spaceStation[level][pathindex].visit = true;

WherespaceStation[level]は index のベクトルを返しlevelます。次に、 position の要素pathindex(構造体のインスタンス) を取得し、最後にその構造体の値を変更します。

于 2013-09-27T02:25:54.587 に答える
0

Q1については、あなたは正しいです。 例: 4x4 次元のベクトル。

vector< vector< int > > vec(4, vector(4));

Q2の場合、パスにアクセスするには、次のことができませんか:

たとえば、spaceStation[2][3] は行 2 列 3 のデータにアクセスします。

次に、次のことができます。

spaceStation[2][3].visit を使用して構造体内の要素にアクセスします。

于 2013-09-27T02:29:50.340 に答える