Size: a a a

2020 June 22

GK

Grigorii Kolesnikov ... in Qt
Оно не хотело работать без потоков, как мне показалось
источник

SE

Suigintou45 E14 in Qt
Grigorii Kolesnikov ☭
как?
прямо в server сделать, на сигналах и одном QNAM
источник

SE

Suigintou45 E14 in Qt
вместо emit operate qnam->get и ту лямбду из конструктора на QNetworkReply от этого get. ну и ещё qnam не удалять в ней
источник

АП

Алексей Попов... in Qt
Приветствую, товарищи.
Есть такой кусок кода: https://pastebin.com/SS3Yhxzu
В нем происходит удаление элементов из QList, не удовлетворяющих условию.
Есть версия того же самого на итераторах: https://pastebin.com/ht4jvNKy
В случае, если из четырех элементов последний подлежит удалению, то цикл while не прерывается происходит падение на условии при попытке доступа через невалидный указатель.
Подскажите, почему так происходит. Ведь erase должен вернуть итератор на следующий элемент, либо end.
источник

SK

Stas Koynov in Qt
Алексей Попов
Приветствую, товарищи.
Есть такой кусок кода: https://pastebin.com/SS3Yhxzu
В нем происходит удаление элементов из QList, не удовлетворяющих условию.
Есть версия того же самого на итераторах: https://pastebin.com/ht4jvNKy
В случае, если из четырех элементов последний подлежит удалению, то цикл while не прерывается происходит падение на условии при попытке доступа через невалидный указатель.
Подскажите, почему так происходит. Ведь erase должен вернуть итератор на следующий элемент, либо end.
а почему < а не != end
источник

AS

Anatoly Shirokov in Qt
Алексей Попов
Приветствую, товарищи.
Есть такой кусок кода: https://pastebin.com/SS3Yhxzu
В нем происходит удаление элементов из QList, не удовлетворяющих условию.
Есть версия того же самого на итераторах: https://pastebin.com/ht4jvNKy
В случае, если из четырех элементов последний подлежит удалению, то цикл while не прерывается происходит падение на условии при попытке доступа через невалидный указатель.
Подскажите, почему так происходит. Ведь erase должен вернуть итератор на следующий элемент, либо end.
иди с конца, не ошибешься, если ты удаляешь в том же контейнере то, чтобы не парится с корректировкой индексов надо идти с конца
источник

АП

Алексей Попов... in Qt
Stas Koynov
а почему < а не != end
Разве итераторы не должны быть упорядочены.
источник

AS

Anatoly Shirokov in Qt
Алексей Попов
Разве итераторы не должны быть упорядочены.
а кто от них это требует?
источник

SE

Suigintou45 E14 in Qt
Anatoly Shirokov
иди с конца, не ошибешься, если ты удаляешь в том же контейнере то, чтобы не парится с корректировкой индексов надо идти с конца
а если надо удалить первый элемент в примере с итераторами?
источник

SK

Stas Koynov in Qt
Алексей Попов
Разве итераторы не должны быть упорядочены.
хм а зачем. у них внутри целый мозг может быть. они сами знают как вперед назад. и что они не равны end. а делать их еще и упорядоченными оверхед же.. для вектора там ладно, а для остальных вообще не тривиальная задача
источник

AS

Anatoly Shirokov in Qt
Suigintou45 E14
а если надо удалить первый элемент в примере с итераторами?
что?
источник

АП

Алексей Попов... in Qt
Anatoly Shirokov
а кто от них это требует?
Честно, уже не скажу откуда взялось это заблуждение (по всей видимости) в моей голове. То есть и число элементов между двумя итераторами по их разнице мы не узнаем?
источник

АП

Алексей Попов... in Qt
Stas Koynov
хм а зачем. у них внутри целый мозг может быть. они сами знают как вперед назад. и что они не равны end. а делать их еще и упорядоченными оверхед же.. для вектора там ладно, а для остальных вообще не тривиальная задача
Звучит логично.
источник

SK

Stas Koynov in Qt
Алексей Попов
Честно, уже не скажу откуда взялось это заблуждение (по всей видимости) в моей голове. То есть и число элементов между двумя итераторами по их разнице мы не узнаем?
ты это взял из итераторов для вектора или указателей :)
источник

AS

Anatoly Shirokov in Qt
Алексей Попов
Честно, уже не скажу откуда взялось это заблуждение (по всей видимости) в моей голове. То есть и число элементов между двумя итераторами по их разнице мы не узнаем?
std::distance - дистанция между итераторами
источник

АП

Алексей Попов... in Qt
Stas Koynov
ты это взял из итераторов для вектора или указателей :)
То есть для векторов это утверждение верно, но не для списков?
источник

АП

Алексей Попов... in Qt
Anatoly Shirokov
std::distance - дистанция между итераторами
Благодарю.
источник

AS

Anatoly Shirokov in Qt
Алексей Попов
То есть для векторов это утверждение верно, но не для списков?
только для векторов и верно
источник

AS

Anatoly Shirokov in Qt
QList не имеет отношению ни к вектору, ни списку, он хитрый
источник

АП

Алексей Попов... in Qt
Всем большое спасибо, я понял свою ошибку.
источник