/********************************************* * * Matrix data reading * * copyright Shanghai Baosight Software Co., Ltd. * * create zoufuzhou 20191001 * ************************************************/ #ifndef _MATRIXFILE_H #define _MATRIXFILE_H /** *本类用于读取二维的配置文件,如 | column0 column1 column2 column3 0 | abc 1000 ddd - 1 | ccc 2000 ddd - 2 | ddd 3000 ddd - 根据关键列来读目标列数据 取数据如 MatrixFile(0,1) = 1000 */ #include #include #include using namespace std; namespace baosight { class MatrixFile{ public: MatrixFile(const std::string& file,int startline = 1,const std::string& split = " "); //打开配置文件 int reset(const std::string& file,int startline = 1,const std::string& split = " "); //取指定坐标数据 string operator()(unsigned int row, unsigned int column); //取指定坐标数据 string operator()( unsigned int row, const string& column); //取得列数 unsigned int column(void); //取得行数 unsigned int row(void); private: //用列头名称取列坐标 int getColumn(const string& column); private: std::vector v_columns; std::vector > v_datarows; }; }; #endif