⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 anotherfilefiltertest.cpp

📁 GPSTK:做gpS的人都应当知道这个东西
💻 CPP
字号:
#pragma ident "$Id$"#include "FileFilter.hpp"#include "FFData.hpp"#include "FFStream.hpp"/** * @file AnotherFileFilterTest.cpp * Here's another test of the FileFilter class */using namespace gpstk;using namespace std;// an FFData with just an intclass TestFFData : public FFData{public:   TestFFData(int i = 0) : val(i) {}   virtual ~TestFFData() {}   void reallyPutRecord(FFStream& s) const       throw(FFStreamError, gpstk::StringUtils::StringException)      {}   void reallyGetRecord(FFStream& s)       throw(FFStreamError, gpstk::StringUtils::StringException)      {}   virtual void dump(std::ostream& s) const {s << val;}   int val;};// an operator < for TestFFDatastruct TestOperatorLessThan :    public binary_function<TestFFData, TestFFData, bool>{public:   bool operator() (TestFFData l, TestFFData r) const      {         return (l.val < r.val);      }};// an operator == for TestFFDatastruct TestOperatorEquals :    binary_function<TestFFData, TestFFData, bool>{public:   bool operator() (TestFFData l, TestFFData r) const      {         return (l.val == r.val);      }};// a filter for a range of values for TestFFDatastruct TestRangeFilter :    public unary_function<TestFFData, bool>{public:   TestRangeFilter(const int b, const int e)         : begin(b), end(e)      {}      bool operator() (TestFFData l) const      {         if ( (l.val < begin) ||              (l.val > end) )            return true;         return false;      }   private:   int begin, end;   };// a removing filter for a single valuestruct TestValueFilter :    public unary_function<TestFFData, bool>{public:   TestValueFilter(const int val)         : value(val)      {}   bool operator() (TestFFData l) const      {         if (value == l.val)            return true;         return false;      }private:   int value;};main (int argc, char *argv[]){   FileFilter<TestFFData> ff;      // add data to the filter   ff.addData(TestFFData(1));   ff.addData(TestFFData(2));   ff.addData(TestFFData(2));   ff.addData(TestFFData(2));   ff.addData(TestFFData(4));   ff.addData(TestFFData(4));   ff.addData(TestFFData(5));   ff.addData(TestFFData(3));   ff.addData(TestFFData(3));   ff.addData(TestFFData(1));      // do various operations on the data   list<TestFFData>::iterator itr;   cout << "unsorted" << endl;   for(itr = ff.begin(); itr != ff.end(); itr++)      (*itr).dump(cout << ' '); cout << endl;   cout << "sorted" << endl;   ff.sort(TestOperatorLessThan());   for(itr = ff.begin(); itr != ff.end(); itr++)      (*itr).dump(cout << ' '); cout << endl;   cout << "filter out values > 3" << endl;   ff.filter(TestRangeFilter(1,3));   for(itr = ff.begin(); itr != ff.end(); itr++)      (*itr).dump(cout << ' '); cout << endl;   cout << "filter out 2" << endl;   ff.filter(TestValueFilter(2));   for(itr = ff.begin(); itr != ff.end(); itr++)      (*itr).dump(cout << ' '); cout << endl;   cout << "unique only" << endl;   ff.unique(TestOperatorEquals());   for(itr = ff.begin(); itr != ff.end(); itr++)      (*itr).dump(cout << ' '); cout << endl;}

⌨️ 快捷键说明

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