gpt4 book ai didi

C++ 索引结构

转载 作者:搜寻专家 更新时间:2023-10-31 00:12:20 24 4
gpt4 key购买 nike

我想知道是否有一种方法可以索引结构以便在 for 循环中遍历成员变量。我反复询问内容并通过 cin>> 获取输入:

struct Fruits {
string name;
int weight, diameter, prize;
string colour, smell, taste;
}apple;

cout << "Apple Name?"; cin >> apple.name;
cout << "Apple weight?"; cin >> apple.weight;
.
.

你明白了。我想要某事

    vector<string> questions {"Apple Name?", "Apple weight?", ... };
for (int j = 0; j < "StructureSize of Fruits"; j++)
{
cout << questions[j]; cin >> apple.j; //apple.j is the key point I want to know
}

非常感谢!

最佳答案

你不能。

数组访问以下列方式工作。

int A[4];
A[0] = 5;
A[1] = 7;
A[3] = 8;

你知道一个 int(在某些架构中)使用 4 个字节。所以,A 的第一个元素在地址 A 中,A 的下一个元素在地址 A+4 中等于说 A+sizeof(int)

当你做第一个赋值 A[0] 时,代码实际上类似于 A+sizeof(int)*0,在下一个 A[ 1] 类似于 A+sizeof(int)*1 如果您看到,数组的任何相邻空间总计 4 个字节(或 sizeof(int) )并继续。如果你看到,你知道 A 里面有整数并且你知道访问每个元素的模式 for 循环中的一般模式将是 A+sizeof(int)*j 在你的结构中你不知道里面是什么,你不能做 A+sizeof(X)*j 因为 X 不是固定的,所以,如果你想这样做,你必须自己实现它,但是这会很痛苦,因为您有混合数据类型。

如果你的结构是固定的,用户的字符串也应该是固定的,那你为什么要尝试从循环中打印它们? vector 需要分配并且使用空间和 gpu,我认为如果你只是更好打印每个选项,然后读取用户输入。

关于C++ 索引结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30487711/

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