gpt4 book ai didi

c++ - STL 算法的反向迭代

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

我有一个函数被调用时有 2 个参数指针,一个数组的开头和结尾。我的函数将从结束指针到开始指针搜索与条件匹配的元素。

如果我尝试向前迭代,我可以使用 find_if 来执行此操作,但我需要反向迭代。 STL对此有规定吗?

注意:我可以在 for 循环中轻松完成此操作。我正在寻找的是一个更优雅的解决方案。

最佳答案

是的,它叫做std::reverse_iterator .一个例子:

template<typename RandomAccessIterator>
void reverse_sort(RandomAccessIterator begin, RandomAccessIterator end) {
typedef std::reverse_iterator<RandomAccessIterator> r_iter_t;
std::sort(r_iter_t(end), r_iter_t(begin));
}

int main() {
int arr[] = { 1, 2, 3 };
reverse_sort(std::begin(arr), std::end(arr));
for(auto i : arr) std::cout << i << "\n";
}

给予

3
2
1

关于c++ - STL 算法的反向迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23516368/

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