В настоящее время я работаю со структурой Qt5 и хочу перебрать список QGraphicsItems для условной манипуляции ими. Хотя я уже нашел лучший способ решения своей настоящей проблемы, похоже, что у этого первого подхода есть проблема, которая, как мне кажется, не имеет смысла.
Моя ситуация такова. У меня есть метод, который служит получателем для моего списка QGraphicsItems. Его возвращаемое значение - QList. Я использую этот метод получения для получения моего списка, а затем я использую метод begin () для получения итератора типа QList :: iterator. Я хочу использовать это для перебора всех элементов списка, очевидно.
Так что мой код выглядит следующим образом:
QList<QGraphicsItem *>::iterator it = this->items().begin();
std::cout << *(this->items().begin()) << std::endl;
std::cout << *it << std::endl;
Где this-> items () возвращает наш QList.
Я ожидаю, что оба этих вывода консоли будут одинаковыми. Хотя вот пример фактического вывода:
0x559716414740
0
Это, кажется, не имеет смысла для меня. Насколько мне известно, присвоение значения this-> items (). Begin () моей переменной it не должно приводить к тому, что переменная it будет иметь любое другое значение, чем то, что я получаю, когда непосредственно печатаю this-> items () .begin ().
Раньше я использовал переменную с именем auto it, но просто чтобы убедиться, я вручную набрал тип, который должен иметь возвращаемый объект. У них обоих одинаковое поведение.
Я был бы очень признателен, если бы кто-нибудь мог указать на мою ошибку здесь, так как я искренне в полном проигрыше. Кажется, что я не мог сделать ничего плохого, но, очевидно, это не работает.
Спасибо за чтение!