gpt4 book ai didi

c++ - 在 C++ 中迭代一个 vector 进行比较

转载 作者:行者123 更新时间:2023-11-28 01:56:36 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,给定一个 vector ,您使用迭代器比较 vector 的第一个和最后一个数字,然后移入并比较下一个。我编写了 for 循环来执行此操作,但我不确定如何在它们到达 vector 中心后停止循环。

对于 for 循环我有:

for (a = v.begin(), b = v.rbegin(); a != v.end(), b != v.rend(); a++, b++)

其中 a 是前向迭代器,b 是后向迭代器。我的假设是我需要更改 for 循环的条件,但我不确定要更改什么。

最佳答案

所以请记住 std::vector<T>::iteratorrandom-access iterator , 这意味着它有 operator<定义。

使用这个,并使用 std::reverse_iterator<Iterator>::base() 成员函数,我们可以将您的 for 循环重写为以下内容:

auto a = v.begin();
auto b = v.rbegin();
for (; a < b.base(); ++a, ++b)
{
// Do stuff...
}

关于c++ - 在 C++ 中迭代一个 vector 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40975180/

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