2015-05-12 3 views
0

моя проблема довольно проста, я использую устройство отслеживания глаз, которое отправляет позицию взгляда каждые 30 мс приблизительно. Итак, каждые 30 мс обновляется переменная smoothedCoordinates. Я хотел бы определить, используя последние значения X (10, например) smoothedCoordinates, зону на экране, на которой пользователь смотрит.Fifo: acces все элементы в нем

Для этого я должен хранить эти значения smoothedCoordinates в контейнере и сделать процесс на нем, чтобы определить зону (путем получения Xmin, Xmax, Ymin, уты из этих значений X)

.

Я думал об использовании FIFO, каждый раз, когда переменная обновляется, я бы подталкивал значение к фронту fifo и выскакивал назад, в этом случае мой FIFO всегда был бы того же размера.

Но можно ли подключиться непосредственно ко всем элементам FIFO, не выталкивая их? Я искал в Интернете, и похоже, что можно только присоединиться к первому элементу и последнему?

.

Если это невозможно сделать с помощью FIFO, есть ли другой контейнер, который бы соответствовал моим потребностям?

+1

Какой язык программирования вы используете? Могут быть разные варианты для разных языков – SnoApps

+0

Я занимаюсь разработкой на C++ – zarachbaal

ответ

1

Вы могли бы просто использовать стандартный массив и дать ему FIFO, как возможности, такие как следующий

char array[20]; 

// prepend the array and cut off the last value 
for (int i = 19 ; i >= 0 ; i--) 
{ 
    // ignore the last element, so it gets overwritten 
    if (i != 19) array[i+1] = array[i]; 
} 
// add the new value to the array at the now available 1st index 
array[0] = firstElement[0]; 
+0

Это идеально подойдет для моих нужд. Я также думал об использовании Vector, но чем проще, тем лучше! Спасибо! – zarachbaal

Смежные вопросы