我有一个结构:
struct KeyPair
{
int nNum;
string str;
};
假设我初始化了我的结构:
KeyPair keys[] = {{0, "tester"},
{2, "yadah"},
{0, "tester"}
};
我将创建多个不同大小的结构实例。因此,为了能够在循环中使用它并读取它的内容,我必须获取结构中的元素数量。如何获取结构中的元素数量?在这个例子中,我应该得到 3,因为我初始化了 3 对。
最佳答案
如果您正在尝试计算 keys
数组的元素数量,您可以简单地执行 sizeof(keys)/sizeof(keys[0])
。
重点是 sizeof(keys)
的结果是内存中键数组的字节大小。这与数组的元素数不同,除非元素的长度为 1 个字节。要获得元素的数量,您需要将字节数除以元素类型的大小,即 sizeof(keys[0])
,这将返回 的数据类型的大小键[0]
。
这里的重要区别是理解 sizeof()
对数组和数据类型的行为不同。您可以将两者结合起来以实现您的需要。
http://en.wikipedia.org/wiki/Sizeof#Using_sizeof_with_arrays
关于c++ - 获取结构中元素的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4275921/