gpt4 book ai didi

c++ - 您如何断言所有 std::vector 都是单行中的给定大小?

转载 作者:太空狗 更新时间:2023-10-29 19:47:00 28 4
gpt4 key购买 nike

我有一个方法接受一个 std::vector 的 sha1 散列作为字符串,它必须恰好 20 个字符长。最好用一行代码断言这一先决条件得到尊重。

void MyClass::setSha1Sums(const std::vector<std::string>& sha1Sums)
{
assert(magic_oneliner_which_verifies_that_all_strings_are_20_chars_long);
sha1Sums_ = sha1Sums;
}

最佳答案

C++03,带提升 (>= 1.33):

std::find_if( sha1Sums.begin(), sha1Sums.end()
, boost::bind( &std::string::size, _1 ) != 20U
) == sha1Sums.end();

请注意,!= 是一个重载运算符,它增加了供应量,使构建更复杂的绑定(bind)更简单,这些绑定(bind)使用基本的关系和逻辑运算符。

http://www.boost.org/doc/libs/1_45_0/libs/bind/bind.html#operators

关于c++ - 您如何断言所有 std::vector<std::string> 都是单行中的给定大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4927531/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com