gpt4 book ai didi

c++ - 如何将初始化的结构放入结构中?

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:20 25 4
gpt4 key购买 nike

我有一个结构:

typedef struct 
{
int nNum;
string str;
}KeyPair;

然后我将我的结构初始化成这样:

KeyPair keys[] =  
{
{0, "tester"},
{2, "yadah"},
{0, "tester"}
};

然而,让我们说一些其他的初始化:

KeyPair keysA[] =  
{
{0, "tester"},
{2, "yadah"},
{0, "tester"}
};



KeyPair keysB[] =
{
{0, "testeras"},
{2, "yadahsdf"},
{3, "testerasss"}
};



KeyPair OtherkeysA[] =
{
{1, "tester"},
{2, "yadah"},
{3, "tester"}
};

并喜欢另外 20 个。

现在,如何创建另一个结构并对其进行初始化,使其包含这些已初始化的 key 对?

这样做的原因是因为我将重复调用一个函数,其参数将用于这些结构。我不想这样做:

pressKeyPairs( keys, sizeof( keys) / sizeof( keys[0] ) );
pressKeyPairs( keysA, sizeof( keysA) / sizeof( keysA[0] ) );
pressKeyPairs( keysB, sizeof( keysB) / sizeof( keysB[0] ) );
pressKeyPairs( OtherkeysA, sizeof( OtherkeysA) / sizeof( OtherkeysA[0] ) );
and so on...

所以我只想遍历一个包含这些 KeyPairs 的初始化实例化的结构...

或者我想将这些已初始化的 KeyPairs 实例放入一个 vector 中,然后循环遍历该 vector ...我该怎么做?

最佳答案

假设您有固定数量的 key 对,您可以使用结构成员函数:

typedef struct KeyPairs {
KeyPair keysA[3];
KeyPair keysB[3];
KeyPair otherKeysA[3];

void init() {
keysA[0].nNum = 0;
keysA[0].str = "tester";
keysA[1].nNum = 2;
keysA[1].str = "yadah";
keysA[2].nNum = 0;
keysA[2].str = "tester";

// and so on for other keys
}
} KeyPairs;

然后像这样使用它:

KeyPairs pairs;
pairs.init();

关于c++ - 如何将初始化的结构放入结构中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4918447/

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