gpt4 book ai didi

c++ - 使用结构元素获取结构数组

转载 作者:行者123 更新时间:2023-11-30 04:11:37 25 4
gpt4 key购买 nike

我有一个包含如下结构的数组:

struct Point
{
int x;
int y;
}

Point array_of_structure[10] ;

for(int i=0;i<10;i++)
{
array_of_structure[i].x = i*2;
}

我想获得 x 值为 6 的结构。通过这种方式,我可以访问该结构的 y 值。我该怎么做?它类似于下面的内容:

Point p = Get the structure which contains x value of 6;
int c = p.y;

这是一个示例解决方案。但我需要一个或多个更好的想法。

for(int i=0;i<10;i++)
if(array_of_structure[i].x==6)
return array_of_structure[i].y;

我想过也许指针可以完成这项工作,但我不确定。我不知道如何解决这个问题。

最佳答案

标准库提供了一个函数std::find_if可用于查找没有循环的项目。但是,作为学习练习,您可以使用如下所述的循环来完成此操作:

您可以迭代struct 数组,直到找到感兴趣的x。您可以根据自己的喜好使用指针或索引。您需要设置一个标志,指示您是否找到了您的元素。

下面是如何使用指针来完成的:

struct Point *ptr;
bool found = false;
for (ptr = array_of_structure ; !found && ptr != &array_of_structure[10] ; ptr++) {
found = (ptr->x == x);
}
if (found) {
cout << ptr->y << endl;
}

这是使用索引的方法:

int index ;
bool found = false;
for (index = 0 ; !found && index != 10 ; index++) {
found = (array_of_structure[index].x == x);
}
if (found) {
cout << array_of_structure[index].y << endl;
}

注意:如果您正在寻找find_if 解决方案,here is an answer that explains this approach .

关于c++ - 使用结构元素获取结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20169912/

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