- 最後登錄
- 2024-4-17
- 在線時間
- 0 小時
- 註冊時間
- 2015-9-8
- 閱讀權限
- 20
- 精華
- 0
- UID
- 15855326
- 帖子
- 278
- 積分
- 277 點
- 潛水值
- 8900 米
| 如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。 本帖最後由 weirdococo 於 2017-5-10 11:35 AM 編輯
這是我第一次寫arduino,所以想把自己在其他地方常用的程式庫寫進去,其他的都工作了,但有一寫寫不出來,也就是fold/reduce,先上source code:
- #include <StandardCplusplus.h>
- #include <vector>
- #include <algorithm>
- #include <numeric>
- namespace HigherOrderFunctions {
- //filter
- template < typename Collection, typename filterOperate >
- Collection filter( Collection collection, filterOperate operate ) {
- collection.erase( std::remove_if(collection.begin(), collection.end(), [operate]( typename Collection::value_type i ) { return !operate(i); } ),
- collection.end() );
- return collection;
- }
- //map
- template < typename Collection, typename mapOperate >
- Collection map( Collection collection, mapOperate operate ) {
- std::transform( collection.begin(), collection.end(), collection.begin(), operate );
- return collection;
- }
-
- //zip
- template < typename Collection, typename biOperate >
- Collection zip( Collection firstCollection, Collection secoundCollection, biOperate operate ) {
- std::transform( firstCollection.begin(), firstCollection.end(), secoundCollection.begin(), firstCollection.begin(), operate );
- return firstCollection;
- }
- //fold 期望輸出不改變型別,也就是說如果出入是int vector,輸出就是
- //只有一個元素的vecter,map 就是只有一個元素的map。
- template < typename Collection, typename foldOperator >
- Collection fold( Collection collection, foldOperator operate ) {
- Collection gonnaReturn;
-
- return gonnaReturn;
- }
- }
複製代碼
想不出來怎麼寫!!
... |
|