如何获取结构中元素的值,它也是结构内的向量

时间:2012-12-06 18:49:37

标签: c++ pointers vector structure

如果我在另一个结构中有一个向量,我如何在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?

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式访问该成员:

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

由于最初这是空的,at将抛出异常。或者,您可以使用operator[],但如果索引无效,则会遇到未定义的行为。

答案 1 :(得分:0)

首先需要将一些元素“添加”到s1向量中,就像struct2指向p对象一样,s1向量初始化为空。