C++ 如何访问结构中向量中的变量

C++ 如何访问结构中向量中的变量,c++,struct,stdvector,C++,Struct,Stdvector,如何访问向量中的struct中的变量。这里我有以下代码 struct sam { double x; int y; std::vector< struct jon > jhon; }; struct jon { int id; char name[64]; }; class foo { public: void getdata(); private; sam s; }; v

如何访问向量中的struct中的变量。这里我有以下代码

 struct sam
 {
    double x;
    int    y;
    std::vector< struct jon > jhon;
 };

 struct jon
 {
    int  id;
    char name[64];    
 };

 class foo
 {
  public:
    void getdata();

  private;
    sam   s;
 };

 void foo:: getdata()
 {
   for (int i = 0; i < 2; ++i)
   {
     s.jhon[i].id = 5;
   }
 }
struct sam
{
双x;
int-y;
std::vectorjhon;
};
结构乔恩
{
int-id;
字符名[64];
};
福班
{
公众:
void getdata();
私有的
山姆s;
};
void foo::getdata()
{
对于(int i=0;i<2;++i)
{
s、 jhon[i].id=5;
}
}

我无法访问变量id。我想,我是以错误的方式访问的。有谁能建议我通过vector struct访问变量的最佳方法吗

您没有向向量添加任何“jon”,因此它是空的。您无法从空向量访问。

乍一看,访问看起来是正确的,我看到的唯一问题是您假设jhon至少有两个元素,但我看不到它在任何地方初始化过。。。你到底得到了什么错误?你的意思是什么-你得到了崩溃,还是你得到了编译错误?我得到了一个分段错误@demostenes通过澄清
foo::getdata
是否期望向量之前已经添加了两个元素来改善这个问题,或者您是否希望它现在添加两个元素。foo::getdata从外部文件读取一个变量。我只想从导入的文件中读取一个数据,并分配给struct@acraig5075I中的变量。我在jon中有一个some元素。它如何可以是一个空结构。你能详细说明一下吗mistake@CodeConfusion:“我在jon中有一个元素”而不是在你给我们看的代码中。“jon是一个结构,里面有一些变量。我试图访问变量@LightnessRacesinOrbitYour vector(jhon)中没有任何jon。你需要用foo::s.jhon.push_back()添加它们,这是私有的。@codeconflusion:“它内部有一些变量”,而不是在您向我们展示的代码中。