📄 ringarray.h
字号:
#ifndef __RINGARRAY_H__
#define __RINGARRAY_H__
//=============================================================================================================================
// m_byMaxSize 郴俊辑 Data History甫 巢变促. 溜 啊厘 坷贰等 单捞鸥甫 瘤快绊 货肺款 单捞鸥甫 盎脚茄促.
//=============================================================================================================================
#include <vector>
using namespace std;
namespace util
{
template <typename T>
class RingArray
{
public:
RingArray()
{
}
~RingArray()
{
}
void Init(DWORD iMaxSize)
{
m_dwCurSize = m_dwCurPos = 0;
T TempData;
m_Array.insert(m_Array.begin(), iMaxSize, TempData);
}
void InsertData(T Data)
{
m_Array[m_dwCurPos] = Data;
if(++m_dwCurPos >= m_Array.capacity())
{
m_dwCurPos = 0;
}
if(++m_dwCurSize > m_Array.capacity())
{
--m_dwCurSize;
}
}
T AverageData()
{
T SumData;
DWORD dwPos;
memset(&SumData, 0, sizeof(T));
for(DWORD i=0; i< m_dwCurSize; i++)
{
dwPos = m_dwCurPos+i;
if(dwPos >= m_dwCurSize) dwPos -= m_dwCurSize;
SumData += m_Array[dwPos];
}
return SumData * (float)(1/m_dwCurSize);
}
DWORD GetSize()
{
return m_dwCurSize;
}
private:
DWORD m_dwCurSize;
DWORD m_dwCurPos; // 促澜 单捞磐啊 甸绢哎 磊府
std::vector<T> m_Array;
};
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -