2015-05-12 80 views
0

我的問題很簡單,我使用了一個眼睛跟蹤設備,每隔30ms發送一次注視位置。所以,每30ms,一個變量smoothedCoordinates被更新。 我想確定,使用屏幕上用戶正在查看的區域的最後一個X(例如10)值smoothedCoordinatesFifo:訪問它中的所有元素

要(通過獲取XMIN,XMAX,YMIN,這些X值YMAX)

爲此,我要的smoothedCoordinates這些值存儲在容器中並在其上做了處理,以確定該區域。

我曾考慮過使用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