Называя класс циклического буфера для временных выборок? - PullRequest
0 голосов
/ 09 ноября 2010

Учитывая:

class Buf {
  // has fixed buffer size, forming a cyclic buffer tor t->v pairs
  void add(time_type t, value_type v); // adds value v at time t, overwriting the oldest buffered value
  value_type get(time_type t); // returns the value at time t1 for t1 <= t < t2 (for t1 and t2 datapoints in the buffer)
  ...
};

Как бы вы назвали этот класс?

Я признаю, что это как-то субъективно, но это не должно приводить или требовать расширенного обсуждения ответов, поэтомуЯ надеюсь, что все в порядке.: -)


Пока что я думаю о RecentValueBuffer, поскольку класс отображает (последние) временные метки в значения, соответствующие этим временным меткам.Я немного не уверен насчет «недавнего», потому что это, кажется, подразумевает короткий временной диапазон / количество выборок.

Ответы [ 4 ]

3 голосов
/ 09 ноября 2010

Вы должны спросить себя, должен ли пользователь класса знать или заботиться о том, чтобы внутренняя реализация представляла собой циклический буфер.Если нет, назовите его так, чтобы было ясно, какова цель этого класса: может быть, что-то вроде TimeMap, поскольку кажется, что он отображает значения в дискретные моменты времени.Тогда вы всегда можете изменить внутреннюю реализацию на что-то другое (например, Hashtable), не меняя имя вашего класса.

Если для семантики важно, чтобы это всегда был циклический буфер, то подумайте о том, чтобы сделать его универсальнымконтейнер CircularBuffer или тому подобное и используйте шаблоны для определения типов ключей и значений.

1 голос
/ 09 ноября 2010

Некоторая комбинация нескольких значимых аспектов его назначения и дизайна:

  • Fixed_Sized
  • ФИФО
  • Круговой
  • Buffer
  • Последние
  • Last_N
  • Time_Window

Выберите один или объедините сколько угодно, пока не будете довольны результатом.

0 голосов
/ 09 ноября 2010

Вы можете использовать STL-совместимый boost :: round_buffer здесь вместо того, чтобы свернуть собственную версию этой структуры.

0 голосов
/ 09 ноября 2010

Круговой буфер или кольцевой буфер

Недавно я написал одно для хранения скользящего среднего (называемое RunningAverage) и назвал мои комментарии «кольцевым буфером», так что я, очевидно, это мое предпочтение. :) Вероятно, потому что это короче.

...