如何正确实现自动迭代器
How to implement auto iterators correctly
我决定替换
for (auto messageIterator = message.begin(); messageIterator != message.end(); ++messageIterator)
跟
for (auto &messageIterator : message)
它有效。然后我决定对这个循环应用类似的方法
for (auto alphabetIterator = alphabet.begin(), rotorIterator = rotor.begin(); alphabetIterator != alphabet.end(), rotorIterator != rotor.end(); ++alphabetIterator, ++rotorIterator)
我的代码看起来像这样,但它不起作用。
for (auto &alphabetIterator : alphabet, &rotorIterator : rotor)
我该如何解决?
使用 range-v3,您可以执行以下操作:
std::vector<int> vi{1, 2, 3};
std::vector<std::string> vs{"one", "two", "three"};
for (const auto& [i, s] : ranges::view::zip(vi, vs)) {
std::cout << i << " " << s << std::endl;
}
演示
相关文章:
- 在文件上实现迭代器
- C++迭代器:实现迭代器类时出错
- 我可以在没有堆栈的情况下在二叉搜索树中实现迭代器吗?
- 如何实现常量迭代器?
- 如何为我的容器实现随机访问迭代器?
- 比较迭代器会使程序崩溃,而不会在自定义气泡排序实现中出现错误
- 如何正确实现自动迭代器
- 了解迭代器/const_iterator实现
- 如何在C++中重新实现包含指针的 STL 容器的类的迭代器
- 双向迭代器实现
- 链表迭代器实现C++
- 如何使用迭代器实现从序列的中间到开始的循环
- 如何为自定义模板化迭代器实现 std::d istance()
- 双链表迭代器实现的问题
- 迭代器实现 -(链表队列)
- std::sort 如何仅使用迭代器实现交换操作
- C++简单迭代器实现
- 迭代器实现问题
- get begin(VEC) / end(VEC)由它们之间的迭代器实现
- 自定义STL迭代器实现错误