Здравствуйте, гость ( Вход | Регистрация )
Iron Bug | Дата 5.8.2015, 10:09 |
ты не можешь взять значение (*) итератора str.end(). потому что это не обычный итератор, а специальная абстракция для указания на конец элементов. вызов невалиден и, по идее, должен вызывать ошибку обращения к памяти. | |
Value | Дата 4.8.2015, 16:25 |
Понял, спасибо за ответы, решил проблему так:
Но вот странно что, когда я пытался сделать как раньше:
То объекту r присваивалось значение, но его никуда нельзя было добавить, на qDebug() было видно его. Спасибо!! |
|
lanz | Дата 4.8.2015, 13:47 |
Цитата сами они предлагают делать примерно так: Нашел, все нашел. А не работает скорее всего из за разыменования невалидного итератора на первой итерации. Iron Bug правильный вариант говорит. |
|
Iron Bug | Дата 4.8.2015, 10:52 |
вообще странно, что в Qt до сих пор не было reverse_iterator. сами они предлагают делать примерно так:
в новых версиях реверс-итераторы уже добавили: https://codereview.qt-project.org/#/c/109931/ |
|
lanz | Дата 4.8.2015, 9:15 |
Потому что str.end() возвращает невалидный итератор, невалидный итератор нельзя никуда перемещать. Используйте индексацию [] или .at http://doc.qt.io/qt-5/qstring.html#at |
|
Value | Дата 3.8.2015, 23:01 |
Добрый вечер, прошу помочь разобраться с проблемой. Есть строка QString, в ней текст, пытаюсь эту строку присвоить другой строке, перевернув ее задом на перед, через итератор по-символьно. Проблема в следующем, почему к строке не прибавляет символ через итератор?? Вот код.
Почему строка пустая ? Спасибо. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 27.4.2024, 8:30 |