我决定替换
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;
}