0

別の構造内にベクトルがある場合、struct1 内の要素の値を開始または取得するにはどうすればよいですか

typedef struct_1 { 
      unsigned v1;
      unsigned v2;
      int v3;
    }struct1;

typedef struct_2{
      int v4;
      unsigned v5;
      vector <struct1> s1;
   } struct2;

v4、v5 を取得するには、次のようにします。

struct2 *p = new struct2(); 
p->v4;
p->v5;

v1 と v2 にアクセスするにはどうすればよいですか?

4

2 に答える 2

0

次の方法でメンバーにアクセスできます。

p->s1.at(index).v1;
p->s1.at(index).v2;
p->s1.at(index).v3;  

最初は空なのでat、例外がスローされます。または、使用できますoperator[]が、インデックスが無効な場合は未定義の動作が発生します。

于 2012-12-06T18:51:36.500 に答える
0

struct2によってポイントされるオブジェクトを持つことによりps1ベクトルが空に初期化されるため、最初にいくつかの要素を s1 ベクトルに「追加」する必要があります。

于 2012-12-06T18:52:50.113 に答える