C++ 将结构添加到数组中

C++ 将结构添加到数组中,c++,arrays,struct,C++,Arrays,Struct,假设我有一个这样的结构: struct example_structure { int thing_one; int thing_two; }; 我还有一个空数组,我正试图用这些结构填充它。我试图添加如下内容,但似乎不起作用: array[i].thing_one = x; array[i].thing_two = y; 与此相反,有一种方法可以声明example\u结构类型的变量,然后将其添加到数组中。您只需编写 array[i] = { x, y }; 或者您可以有一个单独的结构类型

假设我有一个这样的结构:

struct example_structure 
{
int thing_one;
int thing_two;
};
我还有一个空数组,我正试图用这些结构填充它。我试图添加如下内容,但似乎不起作用:

array[i].thing_one = x;
array[i].thing_two = y;
与此相反,有一种方法可以声明example\u结构类型的变量,然后将其添加到数组中。

您只需编写

array[i] = { x, y };
或者您可以有一个单独的结构类型变量。比如说

struct example_structure obj = { x, y };
array[i] = obj;
你可以写得很简单

array[i] = { x, y };
或者您可以有一个单独的结构类型变量。比如说

struct example_structure obj = { x, y };
array[i] = obj;

使用向量。它们可以根据需要扩展

#include <iostream>
#include <vector>

int main()
{
    struct example_structure 
    {
        int thing_one;
        int thing_two;
    };

    std::vector<example_structure> data;
    for (int i = 0; i < 3; i++)
    {
        data.push_back({i, i * 2});
    }

    for (const auto& x : data)
    {
        std::cout << x.thing_one << " " << x.thing_two << "\n";
    }
}
#包括
#包括
int main()
{
结构示例\u结构
{
int thing_one;
int thing_二;
};
std::矢量数据;
对于(int i=0;i<3;i++)
{
data.push_back({i,i*2});
}
用于(常量自动和x:数据)
{

std::cout使用向量。它们可以根据需要扩展

#include <iostream>
#include <vector>

int main()
{
    struct example_structure 
    {
        int thing_one;
        int thing_two;
    };

    std::vector<example_structure> data;
    for (int i = 0; i < 3; i++)
    {
        data.push_back({i, i * 2});
    }

    for (const auto& x : data)
    {
        std::cout << x.thing_one << " " << x.thing_two << "\n";
    }
}
#包括
#包括
int main()
{
结构示例\u结构
{
int thing_one;
int thing_二;
};
std::矢量数据;
对于(int i=0;i<3;i++)
{
data.push_back({i,i*2});
}
用于(常量自动和x:数据)
{

std::cout
x
y
的类型是什么?请发布“它似乎不起作用”的意思是什么?
示例\u结构示例;…;数组[i]=example;
非常有效,但显然您这里有一个更深层次的问题。它似乎不起作用,我的意思是没有将所有结构都添加到数组中。我认为我的代码的这一部分可能是问题所在,因为我不熟悉使用结构“添加到数组”是什么意思?您是否提前为
数组
预先分配了大量数据?您是否试图动态增加数据块的大小?如果是,您是否在
数组[i]之前就已经这样做了
访问但未在此处显示它吗?
i
是否有一个正常值?
array
实际上是一个数组还是您正在使用其他容器类型?需要更多信息。显示一个完整的示例。注意下面答案中所做的猜测。这种猜测不应该是必要的。
x
y?请发布“它似乎不起作用”是什么意思?
示例\u结构示例;…;数组[i]=example;
非常有效,但显然您这里有一个更深层次的问题。它似乎不起作用,我的意思是没有将所有结构都添加到数组中。我认为我的代码的这一部分可能是问题所在,因为我不熟悉使用结构“添加到数组”是什么意思?您是否提前为
数组
预先分配了大量数据?您是否试图动态增加数据块的大小?如果是,您是否在
数组[i]之前就已经这样做了
访问但未在此处显示它?是否
i
有一个正常值?是否
array
实际上是一个数组,或者您使用的是其他容器类型?需要更多信息。显示完整的示例。注意下面答案中的猜测。这种猜测不应该是必要的。这行不通。OP说,“我还有一个空数组,我正试图用这些结构填充它。"如果你这样做,只要你改变代码中的成员的顺序,如果你改变了结构> <代码>中的成员的顺序。你可能想在<代码>结构> <代码>添加一个注释,表明命令不应该被改变。C++有很多的机会来把语义从水里吹出来。@ R。萨胡,我不明白为什么。它将不起作用。不清楚数组是否有一定的大小但未初始化,或者他有一个空的数据结构。这不会起作用。OP说,“我还有一个空数组,我正试图用这些结构填充它。”如果你这样做,只要你改变代码中的成员的顺序,如果你改变了结构> <代码>中的成员的顺序。你可能想在<代码>结构> <代码>添加一个注释,表明命令不应该被改变。C++有很多的机会来把语义从水里吹出来。@ R。萨胡,我不明白为什么。它将不起作用。不清楚数组是否具有特定大小但未初始化,或者是否具有空数据结构。如果这样做,请确保在更改
struct
中成员的顺序时更新代码。您可能希望在
struct
中添加注释,指示不应更改成员顺序ngED,特别是如果两个成员都是同一类型的。C++有一个习惯,它提供了许多将语义从水中释放出来的习惯。值得一提的是,完整性还可以声明<代码>示例Pype结构示例;并在代码>之前初始化它。<代码> >“Engult> EnStPrimeBuffe/Cuff>?”:如果你这样做,如果你改变了结构> <代码>中的成员的顺序,请确保更新你的代码。你可能想给<代码>结构> <代码>添加一个注释,表示成员的顺序不应该被改变,特别是如果两个成员都是同一类型的。C++有PR的习惯。提供了很多将语义从水中吹出的机会。为了完整性,可能值得一提的是,您还可以声明一个
示例\u结构示例;
,并在
之前先初始化它。推回(示例)
。如何
放回
?:-)