【问题标题】:packed container parameters c++包装容器参数 C++
【发布时间】:2020-05-21 18:45:22
【问题描述】:

我正在尝试制作一个带有未定义数量参数的函数。参数都是相同类型的容器。该函数返回最大容器的大小。 这是我到目前为止所尝试的。

template<template<typename> class... container, typename T>
int min_size(container<T>... c){
    vector<container<T>...> temp;
    temp.push_back(c...);
    int min=0;
    for (int i =0; i< temp.size();i++){
        if (min > temp[i].size()) min = temp[i].size();
    }
    return min;
} 
int main() {
    vector v1 ={1,2,3};
    vector v2 ={1,2,3,4,5};
    vector v3 ={1,2,3,4};
    cout<< min_size(v1,v2,v3)<<endl;
    return 0;
}

此代码返回此错误:模板参数的数量错误(3,应至少为 1)向量容器 T ... temp;

【问题讨论】:

    标签: c++ templates containers


    【解决方案1】:

    vector&lt;container&lt;T&gt;...&gt; temp; 会产生 vector&lt;container1&lt;T&gt;, container2&lt;T&gt;, .., containerN&lt;T&gt;&gt; temp; 这是错误的。

    你可以这样做:

    template<template<typename> class... container, typename T>
    int min_size(container<T>... c){
        return std::min({c.size()...});
    }
    

    【讨论】:

    • 我现在看到了。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多