C++ 如果条件检查多个向量大小相等

C++ 如果条件检查多个向量大小相等,c++,c++17,C++,C++17,我有4个不同的向量,我需要检查所有4个向量大小是否相等。我有下面的代码,但我正在寻找一个更好的版本 std::vector<std::string> vec1, vec2, vec3, vec4; if ((vec1.size() == vec2.size()) && (vec3.size() == vec4.size()) && (vec1.size() == vec4.size())) { std::cout <<

我有4个不同的向量,我需要检查所有4个向量大小是否相等。我有下面的代码,但我正在寻找一个更好的版本

std::vector<std::string> vec1, vec2, vec3, vec4;
if ((vec1.size() == vec2.size())
    && (vec3.size() == vec4.size())
    && (vec1.size() == vec4.size()))
{
    std::cout << "equal";
}
std::vec1,vec2,vec3,vec4;
如果((vec1.size()==vec2.size())
&&(vec3.size()==vec4.size())
&&(vec1.size()==vec4.size())
{

我想你可以这样做:

template <typename T0, typename... Ts>
bool areSameSize(T0 const& first, Ts const&... rest) {
    return ((first.size() == rest.size()) && ...);
}
模板
bool areSameSize(T0常量和第一个,Ts常量和其他){
返回((first.size()==rest.size())&&&……);
}

areSameSize一样使用(vec1、vec2、vec3、vec4)< /代码> .< /p>只要对象不是容器的一部分,就很难对它们进行统一操作。例如,你可以制作指向向量的指针向量,但在那一点上,它是否值得呢?无论哪种方式,你都需要分别命名它们。考虑把你的每个向量变成一个<代码> STD::数组< /代码>向量。WRO是什么?你的代码使你寻找一种“更好”的方法?你可以使用一个向量向量和一个loop@nicol将来向量的数量可能会增加,所以感觉不是很好code@Arun:如果它们是松散变量,那么就没有更好的选择了。