gpt4 book ai didi

C++多类型数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:29 24 4
gpt4 key购买 nike

是否可以在 C++ 中创建不同类型的多个有序元组的数组?例如,我希望能够制作一个元组数组,其中每个元组包含一个 int、一个字符串和一个 double ?所以像这样:

  vector<pair<pair<int, string>, double> >;

这样我就可以得到一个元组 (2,"3", 5.43)。这里的问题是,一般来说我事先并不知道元组的大小。因此,它可能只有两个元素,或者五个元素,或者示例中的三个元素以及所有不同的类型。而且顺序也可能不同。是否可以在 C++ 中执行类似的操作,否则我将不得不切换到 Python?

最佳答案

数组是对象(大小相同)的系统排列。在 C/C++ 中,您不能创建可变大小元素的数组。

但是,您可以使用多态性来激活它。

创建一个抽象类型指针数组,并根据其类型转换数组元素。

例子:

namespace Array {
enum Type {
Type1T,
Type2T,
};

class AbstractType {
public:
virtual Type GetType() = 0;
virtual ~AbstractType() {}
};

class Type1 : public AbstractType {
public:
Type GetType() { return Type1T;}

int a;
string b;
double c;
};

class Type2 : public AbstractType {
public:
Type GetType() { return Type2T;}

int a;
string b;
string c;
double d; // whatever you want
};
}

并创建您的多种不同类型的数组;

vector<Array::AbstractType*>  my_array;

关于C++多类型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19678011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com