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

时间:2019-06-06 18:16:34

标签: 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 << "equal";
}

还有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

我猜你可以这样做:

template <typename T0, typename... Ts>
bool areSameSize(T0 const& first, Ts const&... rest) {
    return ((first.size() == rest.size()) && ...);
}

areSameSize(vec1, vec2, vec3, vec4)一样使用。