【问题标题】:Concatenate different types using ranges-v3使用 range-v3 连接不同的类型
【发布时间】:2022-07-11 23:43:16
【问题描述】:

我想知道是否可以连接两个持有不同类型对象的向量,这样我就可以迭代连接并调用一个公共接口。

类似这样的:

    std::vector<A> as;
    as.resize(3);

    std::vector<B> bs;
    bs.resize(4);

    for (const auto &v : ranges::views::concat(as, bs))
    {
        foo(v);
    }

您可以在此处找到完整示例 https://godbolt.org/z/nr5hhWMxj

【问题讨论】:

    标签: c++ range concatenation


    【解决方案1】:

    除非AB 有共同的类型,否则这是不可能的。例如,如果您有:

    struct B:public A
    

    然后就可以了。或者,如果两者都来自一个共同的基础。否则,这根本行不通,因为const auto &amp;v 没有有效类型

    猜你喜欢
    • 2020-07-26
    • 2021-04-19
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 2018-07-22
    • 2021-09-11
    相关资源
    最近更新 更多