gpt4 book ai didi

使用索引信息的 C++ partition_point

转载 作者:行者123 更新时间:2023-11-28 00:06:29 31 4
gpt4 key购买 nike

C++ 中有没有什么东西基本上等同于 partition_point 但我可以在其中使用索引作为额外信息?

例如,假设我有一个 vector<int> X = {0,1,2,8,9,11}我知道的是排序的并且只有非负整数,我想要第一个索引 X[i] != i .我将如何编写这个的二进制搜索版本?我知道谓词 X[i] == i返回 true true true false false false .

如果我不需要使用索引,我可以只使用 std::partition_point .我可以自己编写,但实际上,可能有人已经编写了无错误版本。

谢谢。

最佳答案

你可以试试这个版本。

auto it = std::partition_point(std::begin(v), std::end(v),
[&](const int& e) { return e == (&e - std::data(v)); });

Demo .

不确定我们是否有保证 ev 元素的引用。

关于使用索引信息的 C++ partition_point,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35421622/

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