From ff7cae77d6b0890016e98e48ab2288e65661d28f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=89=E5=AE=87=E6=B8=85=E9=9F=B3?= <2422523675@qq.com> Date: Thu, 31 Aug 2023 23:40:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=BA=86=E5=86=97=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WordsIDE/WordsIDE.pro | 1 - WordsIDE/opstream.h | 113 ------------------------------------------ 2 files changed, 114 deletions(-) delete mode 100644 WordsIDE/opstream.h diff --git a/WordsIDE/WordsIDE.pro b/WordsIDE/WordsIDE.pro index da965ae..84cf644 100644 --- a/WordsIDE/WordsIDE.pro +++ b/WordsIDE/WordsIDE.pro @@ -48,7 +48,6 @@ HEADERS += \ mainwindow.h \ manager_docs.h \ messageview.h \ - opstream.h \ parsebridge.h \ presentcontainerview.h \ projectview.h \ diff --git a/WordsIDE/opstream.h b/WordsIDE/opstream.h deleted file mode 100644 index adba5da..0000000 --- a/WordsIDE/opstream.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef OPSTREAM_H -#define OPSTREAM_H - -#include -#include - -namespace Operate { - - template - class Result - { - public: - Result(QList source, std::function list_filter, std::function list_peaks) - : source_store(source), peak_store(list_peaks), filter_store(list_filter){} - virtual ~Result() = default; - - virtual QList toList() - { - QList rets_list; - - for(auto &it : source_store) - if(filter_store(it)) - rets_list << peak_store(it); - - return rets_list; - } - - template - QHash toMap(std::function key_selector) - { - QHash map; - - for(auto &it : source_store) - if(filter_store(it)) - map[key_selector(it)] = peak_store(it); - - return map; - } - - virtual void forEach(std::function ex_proc) - { - auto items = toList(); - for(auto &it : items) - ex_proc(it); - } - - Result filter(std::function filter){ - auto filter_combine = [filter, this](const ValueType& it){ return filter(it) && filter_store(it); }; - return Result(source_store, filter_combine, peak_store); - } - - template - Result select(std::function peak){ - auto peak_combine = [peak, this](const TargetType &it){ - auto temp = this->peak_store(it); - return peak(temp); - }; - return Result(source_store, filter_store, peak_combine); - } - - - private: - QList source_store; - std::function peak_store; - std::function filter_store; - }; - - - template - class OpStream - { - public: - /** - * @brief 通过迭代函数建立操作流 - * @param peak_proc function - */ - OpStream(std::function peak_proc) - { - int count = 0; - peak_proc(count, 0); - - for (int index = 0; index < count; ++index) - source_store << peak_proc(count, index); - } - /** - * @brief 通过集合建立操作流 - * @param source - */ - OpStream(QList source) - : source_store(source){} - - template - Result select(std::function value_selector) - { - return Result(source_store, [](const ValueType& it){return true;}, value_selector); - } - Result select() - { - return Result(source_store, [](const ValueType& it){return true;}, [](const ValueType& it){return it;}); - } - - Result filter(std::function filter) - { - return Result(source_store, filter, [](const ValueType& it){ return it; }); - } - - private: - QList source_store; - }; - -} - -#endif // OPSTREAM_H