У меня есть массив, который имеет структуру, как:Получение массива структур с использованием элемента структуры
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;
}
Я хочу, чтобы получить структуру, которая удерживает й значение 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;
Я думал о том, может быть, указатели выполняют эту работу, но я не уверен в этом. Я не могу понять, как решить эту проблему.
Вы знаете, как перебирать массив? Вы знаете, как использовать указатели? – Beta
есть. Но я задаюсь вопросом, существует ли эффективное решение, стандартная библиотечная функция или мудрый способ для этой проблемы. – oiyio
Возможно, существуют более компактные способы сделать это, но они существенно сокращают линейный поиск. Если вы уполномочены считать, что данные отсортированы, вы можете посмотреть бинарный поиск. Ваша инициализация устанавливает x-координаты в порядке возрастания, но не устанавливает y-координат вообще, поэтому неясно, что вы ожидаете. –