c++ - STL 并行搜索算法的保证

标签 c++ stl

STL 中搜索算法的并行版本(例如 std::find、std::find_if)是否保证将迭代器返回到符合条件的范围内的第一个元素?

文档没有明确提及是否是这种情况 - 在“C++ 并发操作”中有一个具体返回第一个元素的实现。

最佳答案

标准库算法的行为* 例如std::find, std::find_if在 C++ 标准中有明确规定。从 C++14 开始,并行算法的指定行为没有异常(exception)。这意味着假设的并行实现仍然需要遵守这些要求才能合规。


* 从评论来看,OP 指的是 C++ 标准库,而不是标准模板库。我做出区分是因为 STL 可能会定义一组不同的规则。

关于c++ - STL 并行搜索算法的保证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39815239/

相关文章:

c++ - 从 .txt 文件填充数组

c++ - Clang 不为 x86 以外的平台编译代码

C++ 从 map 的第二个元素迭代

C++ STL map 同时更新所有值

C++ 容器的迭代器

c++ - 如何将 cMessage 类型转换为消息定义类型

c++ - 使用 Visual C++ 和 MFC 发出 ping 声音错误

c++ - 这种模板部分特化的目的是什么?

c++ - std vector 内存分配 Linux 与 Windows 编译器

c++ - "vector iterator not incrementable"set_intersection 运行时错误