【问题标题】:Fifo : acces all elements in itFIFO:访问其中的所有元素
【发布时间】:2015-07-23 12:41:37
【问题描述】:

我的问题很简单,我使用的是眼动追踪设备,它大约每 30 毫秒发送一次凝视位置。因此,每 30 毫秒更新一个变量 smoothedCoordinates。 我想使用smoothedCoordinates 的最后一个 X(例如 10 个)值来确定用户正在查看的屏幕区域。

为此,我必须将smoothedCoordinates 的这些值存储在一个容器中,并对其进行处理以确定区域(通过获取这些 X 值的 xmin、xmax、ymin、ymax)

.

我考虑过使用 FIFO,每次更新变量时,我都会将值推送到 fifo 的前面并弹出后面的值,在这种情况下,我的 FIFO 将始终是相同的大小。

但是是否可以直接加入 FIFO 的所有元素而不弹出它们? 我搜索了互联网,似乎只能加入第一个元素和最后一个元素?

.

如果不能使用 FIFO,是否有其他容器可以满足我的需求?

【问题讨论】:

  • 您使用哪种编程语言?不同的语言可能有不同的选项
  • 我正在使用 C++ 开发

标签: store fifo eye-tracking


【解决方案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];

【讨论】:

  • 这完全符合我的需要。我也考虑过使用 Vector 但越简单越好!谢谢!
猜你喜欢
  • 1970-01-01
  • 2010-10-19
  • 1970-01-01
  • 2019-09-01
  • 2017-04-18
  • 2021-06-01
  • 2018-12-16
  • 1970-01-01
  • 2013-06-04
相关资源
最近更新 更多