📄 encoder.h
字号:
//encoder.
#include "fun.h"
template <class T>
class CEncoder
{
private:
int m_VectorSize;
int m_SeedsSum;
T* m_seeds;
public:
CEncoder()
{
m_VectorSize = 0;
m_SeedsSum = 0;
m_seeds = NULL;
}
~CEncoder()
{
delete [] m_seeds;
}
void init(T* src, int dim, int sum);
int seed_id( T* sample);
};
template <class T>
void CEncoder<T>::init(T* src, int dim, int sum)
{
m_VectorSize = dim;
m_SeedsSum = sum;
if (m_seeds)
{
delete [] m_seeds;
}
m_seeds = new T[ dim * sum];
memcpy((void*)m_seeds, src, dim * sum * sizeof(T));
}
template <class T>
int CEncoder<T>::seed_id (T* sample)
{
double distance , Min_dis;
int id = 0;
Min_dis = dis(m_seeds, sample, m_VectorSize);
for (int i = 1 ;i < m_SeedsSum; i++)
{
distance = dis(&m_seeds[m_VectorSize * i], sample, m_VectorSize);
if (distance < Min_dis)
{
Min_dis = distance;
id = i;
}
}
return id;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -