📄 datainfo.h
字号:
template <class T>
class DataInfo
{
private:
T data; // the data value
int frequency; // occurrences of the data value
public:
// increment frequency
void Increment(void);
// relational operators. "==" and "<" must
// be valid for type T
// compare data values
int operator== (const DataInfo<T>& w);
// compare frequency counts
int operator< (const DataInfo<T>& w);
// stream operators. "<<" and ">>" must be valid
// for type T
friend istream& operator>> (istream& is, DataInfo<T> &w);
friend ostream& operator<< (ostream& os, const DataInfo<T>& w);
};
// increment frequency count of the data
template <class T>
void DataInfo<T>::Increment(void)
{
frequency++;
}
// compare data values
template <class T>
int DataInfo<T>::operator== (const DataInfo<T>& w)
{
return data == w.data;
}
// compare frequency values
template <class T>
int DataInfo<T>::operator< (const DataInfo<T>& w)
{
return frequency < w.frequency;
}
// input a value into a DataInfo record
template <class T>
istream& operator>> (istream& istr, DataInfo<T>& w)
{
istr >> w.data;
w.frequency = 1;
return istr;
}
// output a DataInfo record in the format "data:count"
template <class T>
ostream& operator<< (ostream& ostr, const DataInfo<T>& w)
{
ostr << w.data << ": " << w.frequency << endl;
return ostr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -