小编The*_*ist的帖子

从变换切换到过滤器时,size() 会导致错误

什么时候

  • 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)

c++ std-ranges

5
推荐指数
2
解决办法
337
查看次数

如何定义可以无限链接的累加器 f(2)(3)(10)(100)?

如果可能的话,我想定义一个函数,例如累加器,它可以无限链接,如下所示:

  • f(2)返回 2
  • f(2)(3)返回 5
  • f(2)(3)(10)返回 15
  • f(2)(3)(10)(100)返回 115
  • f(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){}方法。

c#

3
推荐指数
1
解决办法
40
查看次数

为什么 (const char[2]){'A', '\0'} 和 "A" 放置在不同的内存位置?

(const char[2]){'A', '\0'}根据我的调查,和的存储位置"A" 是不同的。

cout<< &(const char[2]){'A', '\0'} <<endl; 
cout<< &"A" <<endl;
Run Code Online (Sandbox Code Playgroud)

为什么它们被放置在不同的内存位置?

c++

0
推荐指数
1
解决办法
88
查看次数

标签 统计

c++ ×2

c# ×1

std-ranges ×1