以下の例はinitializer_list経由でリストの 配列を取り,リストの値はラムダ式のpredを使いソート,そして指定された関数で出力する例.
#include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; class Tako { private: vector<signed> v; public: Tako(initializer_list<signed> listVal); virtual ~Tako() {} void dump(void (f)(const signed)); void sort(); }; Tako::Tako(initializer_list<signed> listVal) { for (auto a : listVal) { v.push_back(a); } } void Tako::dump(void (f)(const signed)) { for (auto x : v) { f(x); } } void Tako::sort() { if (v.size() >= 2) { std::sort(v.begin(), v.end(), [](signed x, signed y)-> signed { return x > y; }); } } void dump_to_stdout(const signed v) { cout << v << endl; } int main() { Tako t = { 32, 27, 30, 50, 64, 10 }; void(*myfunc)(signed) = dump_to_stdout; t.sort(); t.dump(myfunc); }
0 件のコメント:
コメントを投稿