我有一个结构:
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/