input_output_manager.hpp

来自「APRIOR算法的源程序.希望对大家有用,谁有FP-GROWTH算法的程序请给我」· HPP 代码 · 共 85 行

HPP
85
字号
/***************************************************************************                          Input_Output_Manager.hpp  -  description                             -------------------    begin                : cs march 10 2004    copyright            : (C) 2004 by Ferenc Bodon    email                : bodon@cs.bme.hu ***************************************************************************/#ifndef Input_Output_Manager_HPP#define Input_Output_Manager_HPP/**  *@author Ferenc Bodon  */#include "common.hpp"  #include <fstream>#include <vector>#include <set>using namespace std;/** This class is responsible for the input, output and recode operations.   In frequent itemset mining (FIM) algorithms only frequent items    are of interest. Hence it is useful to represent frequent items with    integers: <em>1, 2, ..., n</em>, where <em>n</em> is the number of    frequent items. In the original transactional database, the items are also    represented with integers, so we have to assign new integers    to the frequent items.   */class Input_Output_Manager:public ofstream{public:   Input_Output_Manager( ifstream& basket_file,  			 const char* output_file_name );      /// Reads in one transaction from the basketfile.   int read_in_a_line( set<itemtype>& basket );   /// Determines the frequent items,    /// fills in the new_code an new_code_inverse vectors   countertype find_frequent_items(       const double min_supp, vector<countertype>& support_of_items );   /// Creates an other basket that contains only the frequent items recoded.   void basket_recode( const set<itemtype>& original_basket, 		       vector<itemtype>& new_basket );   /// Writes out an itemset to the output file.   void write_out_basket( const set<itemtype>& itemset );   /// Writes out an itemset and its counter to the output file.   void write_out_basket_and_counter( const set<itemtype>& itemset, 				      const countertype counter );   ///   void rewind();    ~Input_Output_Manager( );private:/// The file that contain the transactions (i.e baskets).   ifstream& basket_file;     /** The new codes of the frequent items.    *    * if new_code[i] is 0, then i is not frequent, otherwise the    * new code of item i is new_code[i]-1.    */   vector<itemtype> new_code;  /** The inverse of new_code vector.    *    * new_code_inverse[new_code[i]-1]=i if i is a frequent item.    */   vector<itemtype> new_code_inverse;};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?