#include <map>

class CKohonen
{
private:
	DWORD m_dwVectorLength;
	DWORD m_dwVectorCount;
	std::multimap<WCHAR, double*> m_mmapNeurons;
	CRITICAL_SECTION m_cs;
public:
	CKohonen();
	~CKohonen();
	void Clear();
	void SetVectorLength(DWORD dwVectorLength);
	DWORD GetVectorLength();
	void Add(WCHAR neuron, double* pdData);
	BOOL GetOutput(double *pdData, WCHAR* pwcOut);
	void Serialize(CArchive &ar);
	DWORD GetNeuronCount();
};