freitemcounter.inl
来自「C++编写的代码」· INL 代码 · 共 53 行
INL
53 行
using namespace std;
//------------------------------------------------------------------------
//------------------------------------------------------------------------
template <typename FreItemType>
void FreItemCounter<FreItemType>::Init(unsigned itemSetSize)
{
FreItemType freItemTmp(ItemType(), 0);
for (int i=0;i<itemSetSize;++i)
{
freItemTmp.item_ = ItemType(i+1);
itemCountVec_.push_back(freItemTmp);
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
template <typename FreItemType>
void FreItemCounter<FreItemType>::CountItem(const ItemType& item, unsigned SId)
{
if (itemCountVec_[item.subscript_-1].SId_ != SId)
{
++itemCountVec_[item.subscript_-1].count_;
itemCountVec_[item.subscript_-1].SId_ = SId;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
template <typename FreItemType>
void FreItemCounter<FreItemType>::ResetCounter()
{
for (int i=0;i<itemCountVec_.size();++i)
{
itemCountVec_[i].count_ = 0;
itemCountVec_[i].SId_ = 0;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
template <typename FreItemType>
void FreItemCounter<FreItemType>::GetFreItems(vector<FreItemType>& freItemVec, unsigned int minSupport)
{
for (int i=0;i<itemCountVec_.size();++i)
{
if (itemCountVec_[i].count_ >= minSupport)
{
freItemVec.push_back(itemCountVec_[i]);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?