gpt4 book ai didi

c++ - 这段代码是否滥用了 STL 的 find_if?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:21:35 24 4
gpt4 key购买 nike

假设我有一个存储在 vector 中的服务器名称列表,我想一次联系一个服务器,直到有人成功响应为止。我正在考虑以下列方式使用 STL 的 find_if 算法:

find_if(serverNames.begin(), serverNames.end(), ContactServer());

其中ContactServer是一个谓词函数对象。
一方面,存在一个问题,因为谓词不会总是为相同的服务器名称返回相同的结果(因为服务器停机、网络问题等)。但是,无论使用谓词的哪个拷贝(谓词没有真实状态),都会返回相同的结果,因此状态保持谓词的原始问题在这种情况下不相关。

你说呢?

最佳答案

我想我会去做。

我唯一担心的是它的可读性(以及因此的可维护性)。对我来说,它的内容类似于“查找我可以联系的第一台服务器”,这非常有道理。

您可能想重命名 ContactServer 以表明它是一个谓词; CanContactServer? (但随后人们会提示隐藏的副作用。嗯......)

关于c++ - 这段代码是否滥用了 STL 的 find_if?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27607/

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