动态数组添加元素而不创建结构变量/对象

DynamicArray of adding elements without creating struct variables/objects

本文关键字:结构 变量 对象 创建 数组 添加 元素 动态      更新时间:2023-10-16

我已经用 3 个 UnicodeString 值定义了结构体,所以我可以像这样创建结构变量:

someStruct x = {"value1","value2","value3"};

但是我想做的是我的结构类型的 DynamicArray,我想向这个数组添加元素而不提前创建它们,而是在添加数组元素的同时分配结构值。

我试着这样做

DynamicArray<someStruct> arrayOfSomeStruct;
arrayOfSomeStruct.Length = 1; 
arrayOfSomeStruct[0] = {"value1","value2","value3"};

但它不是这样工作的。你能帮我这个吗?

编辑:我已经找到了有效的解决方案,但我对它并不完全满意:

arrayOfSomeStruct[0].atr1 = "value";
arrayOfSomeStruct[0].atr2 = "value";
arrayOfSomeStruct[0].atr3 = "value";

尝试使用标准库中的向量

向量是表示大小可以更改的数组的序列容器。

您可以尝试以下代码:

#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct SomeStruct{
    string str1;
    string str2;
    string str3;
};
int main()
{
    vector< SomeStruct > someStructVector; //Create a vector of SomeStruct
    someStructVector.push_back( {"str1 ", "str2 ", "str3"} ); //adds {"str1 ", "str2 ", "str3"} to the vector
    for( auto ss : someStructVector )//Access the elements of the vector
        cout << ss.str1 << ss.str2 << ss.str3 << endl; 
    return 0;
}