gpt4 book ai didi

c++ - 为 STL 算法 lambda 适配 std::pair

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:07 27 4
gpt4 key购买 nike

假设我有一个带有 std::pair 的 STL 容器。有什么方法可以使用 boost 为 STL 算法 lambda 调整对的秒数?

std::vector<std::pair<int, SomeStruct>> vec;
const auto Predicate = [](SomeStruct const& s) { ... };
auto it = std::find_if(vec.begin(), vec.end(), boost-magic(Predicate));

最佳答案

无需提升。您可以简单地编写一个 lambda 或命名函数对象:

const auto Predicate2 = [&Predicate](std::pair<int, SomeStruct> const& s) {
return Predicate(s.second);
};
auto it = std::find_if(vec.begin(), vec.end(), Predicate2);

当然,如果 Predicate 仅在这种情况下使用,那么将其编写为直接接受一对会更有意义。

关于c++ - 为 STL 算法 lambda 适配 std::pair,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38604735/

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