gpt4 book ai didi

c++ - 检测偶数和奇数 C++ vector 迭代器

转载 作者:太空宇宙 更新时间:2023-11-04 15:06:27 24 4
gpt4 key购买 nike

我进行了搜索,令我惊讶的是还没有人问过这个问题。我知道如何用一个简单的循环来完成它,用 vector 迭代器怎么样?

for( std::vector<int>::iterator it = somevector.begin(); it != somevector.end(); ++it )
{
//Conditions stating a certain vector has an even or odd index.
}

抱歉没说清楚,我的意思是检测 vector 的索引是奇数还是偶数。

最佳答案

这是一种简单的方法:

{
bool is_even = true;
for (const auto& v: somevector) {
if (is_even) even_handler(v);
else odd_handler(v);
is_even = !is_even;
}
}

想要更复杂的解决方案?没问题:

#include <iostream>
#include <string>
#include <utility>
#include <vector>
using std::next;
template<typename Iter, typename Func, typename...Funcs>
void RotateHandlers(Iter b, Iter e, Func f, Funcs...fs) {
if (b != e) {
f(*b);
RotateHandlers(next(b), e, fs..., f);
}
}

int main() {
std::vector<std::string> v({"Hello", "world", "it's", "really", "great", "to", "be", "here"});
RotateHandlers(v.begin(), v.end(),
[](const std::string& s){std::cout << "First|" << s << std::endl;},
[](const std::string& s){std::cout << "Then |" << s << std::endl;},
[](const std::string& s){std::cout << "And |" << s << std::endl
<< " |" << std::string(s.size(), '-') << std::endl;}
);
return 0;
}

在这里查看:http://ideone.com/jmlV5F

关于c++ - 检测偶数和奇数 C++ vector 迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027196/

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