stl итератора понять, указывает ли он на nullptr, не имея доступ к обьекту контейнера, к которому он относится?
Вопрос возник, когда я пытался пробежаться "зигзагом" по нескольким спискам:
void zigzag() {
std::list<int> x = {1}, y = {2, 4}, z = {3, 5, 6};
std::list<std::list<int>::iterator> iterators = {x.begin(), y.begin(), z.begin()};
for (auto it = iterators.begin(); !iterators.empty(); it = iterators.begin()) {
for (; it != iterators.end(); ++it) {
if (*it == x.end() || *it == y.end() || *it == z.end()) {
it = iterators.erase(it);
} else {
cout << *((*it)++) << " ";
}
}
}
}
конкретно к строчке
if (*it == x.end() || *it == y.end() || *it == z.end())
мб возможно ее как нибудь упростить?
Прямо на вопрос - нет, невозможно
Вряд ли тебе нужен именно список итераторов, хватило бы массива или vector
А я никак не могу уловить, это всё чтобы сделать что?
решить задачу с литкода)
что за задача, если не секрет?
https://leetcode.com/problems/zigzag-iterator/ она доступна по подписке, поэтому условие пришлось додумать, исходя из разборов на других ресурсах
А, я понял, оно должно выдать 1,2,3,4,5,6
Обсуждают сегодня