c++ - DynamicArray of struct - 添加元素而不创建结构变量/对象

标签 c++ struct c++builder dynamic-arrays

我已经用 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";

最佳答案

尝试使用vectors来自标准库

vector 是表示可以改变大小的数组的序列容器。

你可以试试下面的代码:

#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;
}

关于c++ - DynamicArray of struct - 添加元素而不创建结构变量/对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42878615/

相关文章:

c++ - sscanf 到 stringstream 转换

c++ - 将 lower_bound/upper_bound 与 2 种不同类型一起使用

go - 如何使用接口(interface)来规范化不同的结构?

json - Golang 到 Json,创建 Google Charts

c++指示器/加载轮

c++ - 在 C++Builder2009 中如何正确地将指针从 void* 向下转换为 TMemo*?

c++ - 使用 gcc 3.3 mips32 boost 1_49_0 错误

c - 在 C 中创建递归数据结构的方法

C++ 生成器或 Visual Studio

c++查找 vector 中元素的实际数量