Rokiのチラ裏

学生による学習のログ

桁毎の処理に特化したコンテナ的なもの2

以前同じようなものを書いたが、機能を若干単純にして、連続的な演算を想定していなかったのでexpression templateを用いて再度書き直した。論理的に以前のものよりこちらの方が高速である。

以下のように使う。

#include<srook/math/digits.hpp>
#include<functional>
int main()
{
    using namespace srook;
    using namespace std;
    
    digits a(123456789),b(428048329);
    digits result=a+b+b;
    result | print;
    
    digits c=result.sort<greater>() | filterd([](const auto& x){return x%2==0;}) | copied;
    c | print;
}
9 6 19 4 13 22 13 12 27 
22 12 6 4 

まあ、正直あまり大した事はしていない。