小编Mat*_*ias的帖子

C++20 流又名范围

当我使用 Stream Library ( http://jscheiny.github.io/Streams/api.html# ) 时,我可以像在 Java-Streams 中那样做类似的事情:

#include "Streams/source/Stream.h"
#include <iostream>

using namespace std;
using namespace stream;
using namespace stream::op;

int main() {

    list<string> einkaufsliste = {
        "Bier", "Käse", "Wurst", "Salami", "Senf", "Sauerkraut"
    };

    int c = MakeStream::from(einkaufsliste)
          | filter([] (string s) { return !s.substr(0,1).compare("S"); })
          | peek([] (string s) { cout << s << endl; })
          | count()
          ;

    cout << c << endl;
}

Run Code Online (Sandbox Code Playgroud)

它给出了这个输出:

Salami
Senf
Sauerkraut
3
Run Code Online (Sandbox Code Playgroud)

在 C++20 中,我发现了范围,它看起来很有希望实现同样的目标。但是,当我想构建类似的函数式编程风格时,它不起作用:

Salami
Senf
Sauerkraut
3 …
Run Code Online (Sandbox Code Playgroud)

c++ functional-programming c++20 std-ranges

4
推荐指数
1
解决办法
128
查看次数

标签 统计

c++ ×1

c++20 ×1

functional-programming ×1

std-ranges ×1