什么时候
views::filter([](auto n) { return n % 2 == 0; });已激活,我无法获取[2,4]。views::transform([](auto n) { return 2 * n; });已激活,我成功获得了[2,4,6,8,10]。#include <iostream>
#include <ranges>
#include <sstream>
int main()
{
using namespace std;
auto input = views::iota(1, 5 + 1);
auto output = input |
views::filter([](auto n) { return n % 2 == 0; });
//views::transform([](auto n) { return 2 * n; });
stringstream ss;
ss << "[";
for (auto i = 0; i < output.size() …Run Code Online (Sandbox Code Playgroud) 如果可能的话,我想定义一个函数,例如累加器,它可以无限链接,如下所示:
f(2)返回 2f(2)(3)返回 5f(2)(3)(10)返回 15f(2)(3)(10)(100)返回 115f(2)(3)(10)(100)()()...返回...static void Main()
{
Func<int, Func<int, int>> f = (x) =>
{
return (y) =>
{
return x += y;
};
};
Console.WriteLine(f(2)(3));
// Console.WriteLine(f(2)(3)(10)); should return 15
}
Run Code Online (Sandbox Code Playgroud)
任何想法?
注意:我不是在询问f(param int[] x){}方法。
(const char[2]){'A', '\0'}根据我的调查,和的存储位置"A"
是不同的。
cout<< &(const char[2]){'A', '\0'} <<endl;
cout<< &"A" <<endl;
Run Code Online (Sandbox Code Playgroud)
为什么它们被放置在不同的内存位置?