, . , , .
: , reset , , @dirkgently. , min max n, . , , FIFO:
std::deque<int> lastRawXs;
const int frameSize = 100;
while (true)
{
Function(&RawX, &RawY, &RawZ);
if (lastRawXs.size() >= frameSize)
{
lastRawXs.pop_front();
}
lastRawXs.push_back(RawX);
typedef std::deque<int>::const_iterator iterator;
std::pair<iterator, iterator> minMaxRawX =
boost::minmax_element(lastRawXs.begin(), lastRawXs.end());
Output("MinRawX:%0.2f", *minMaxRawX.first);
Output("MaxRawX:%0.2f", *minMaxRawX.second);
}
. () :
const int frameSize = 100;
std::circular_buffer<int> lastRawXs(frameSize);
while (true)
{
Function(&RawX, &RawY, &RawZ);
lastRawXs.push_back(RawX);
typedef std::circular_buffer<int>::const_iterator iterator;
std::pair<iterator, iterator> minMaxRawX =
boost::minmax_element(lastRawXs.begin(), lastRawXs.end());
Output("MinRawX:%0.2f", *minMaxRawX.first);
Output("MaxRawX:%0.2f", *minMaxRawX.second);
}