趣味编程:静夜思(C++17 Ranges版)

Posted zwvista

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了趣味编程:静夜思(C++17 Ranges版)相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <range/v3/all.hpp>
#include <vector>
#include <locale>
#include <locale.h>
using namespace std;
using namespace ranges;

int main(int argc, const char * argv[]) 
    constexpr char locale_name[] = "en_US.UTF-8";
    setlocale( LC_ALL, locale_name );
    locale::global(locale(locale_name));
    wcout.imbue(locale());
    wstring text = L"床前明月光疑是地上霜举头望明月低头思故乡";
    int offset = 5;
    auto v = text | view::enumerate | to_vector;
    auto v2 =
        action::sort(v, [&](auto& a, auto& b)return paira.first % offset, -a.first < pairb.first % offset, -b.first;) |
        view::group_by([&](auto& a, auto& b)return a.first % offset == b.first % offset;) | to_vector;
    auto rng = v2 | view::transform([](auto& o)
        return ranges::accumulate(o, wstring, [](auto& acc, auto& e)return acc + (acc.empty() ? L"" : L"|") + e.second;);
    );
    for (auto o : rng)
        wcout << o << endl;
    return 0;


/*
低|举|疑|床
头|头|是|前
思|望|地|明
故|明|上|月
乡|月|霜|光
*/

以上是关于趣味编程:静夜思(C++17 Ranges版)的主要内容,如果未能解决你的问题,请参考以下文章

李白《静夜思》

李白《静夜思》的赏析

李白的静夜思全文是啥?

李白《静夜思》古诗赏析

静夜思·静夜祈愿

静夜思-《唐诗三百首》数据源应用程序