set_helper

//
// Created by herohlc  on 2017/11/26.
//

#ifndef SET_HELPER_H_
#define SET_HELPER_H_

#include <iostream>

#include <set>
#include <algorithm>
#include <functional>

using std::cout;
using std::endl;
using std::set;
using std::multiset;

template <class T>
class StatisticSet{
public:
    StatisticSet(){}

    void add(T item) {
        statistic_set_.insert(item);
        history_set_.insert(item);

        cout << statistic_set_.count(item) << endl;
    }

    void del(T item) {
        cout << statistic_set_.count(item) << endl;
        statistic_set_.erase(item);
    }

    void ask(T item) const {
        cout << ((history_set_.find(item) != history_set_.end())? 1 : 0 ) << " " << statistic_set_.count(item) << endl;
    }

    void test() const{
        cout << "--------------------------" << endl;
        for(auto itr : statistic_set_){
            cout << itr << endl;
        }
        cout << "--------------------------" << endl;
    }

private:
    StatisticSet( const StatisticSet&) {}
    StatisticSet& operator = (const StatisticSet&){}

private:
    set<T>      history_set_;
    multiset<T> statistic_set_;

};

#endif // SET_HELPER_H_

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容