итератор итерирует без причины C ++ - PullRequest
0 голосов
/ 18 октября 2011

Поэтому я пытаюсь реализовать функцию вставки, которая вставляет элемент в правильном порядке в списке.

мой ввод выглядит как:

  b.insert('Z');
  b.insert('J');
  b.insert('Y');

и должен выводить как:

J Y Z

Я начинаю с того, что указываю итератору в начале списка, а затем перебираю каждый объект, пока не найду правильное место для его ввода. Я не понимаю почему, но когда я начинаю с итерации, он прыгает вперед на одну точку после того, как входит в цикл.

class list < node<T>* >::iterator itr = bt->level().begin();

      cout << "itr now: " << (*itr)->getItem() << endl;

      while (itr != bt->level().end()) {
        cout << "itr now: " << (*itr)->getItem() << " and " << elem << endl;

        // do a bunch of other stuff
        ++itr;
      }

мой вывод для этого должен выглядеть так:

itr now: Z
itr now: Z and J
itr now: J
itr now: J and Y

но вместо этого он выглядит как

itr now: Z
itr now: Z and J
itr now: J
itr now: Z and Y

может кто-нибудь сказать мне, что происходит, что вызывает эту проблему?

1 Ответ

0 голосов
/ 18 октября 2011

Пожалуйста, опубликуйте свой полный код здесь, если вы ищете отсортированный заказ, просто вставьте элемент в container и используйте стандартный algorithm sort, который подойдет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...