Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Demidovez
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 4
1

Не работает push_back

15.03.2017, 17:19. Просмотров 215. Ответов 1
Метки нет (Все метки)

Вот кусок кода:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for(int i = 0; i < onlySignesDirty.length(); i++) {
            if(onlySignesDirty[i] == "") {
                continue;
            } else if(onlySignesDirty[i].indexOf(")") != -1 && onlySignesDirty[i].length() > 1) {
                //qDebug() << onlySignesDirty[i] << onlySignesDirty[i].at(0) << onlySignesDirty[i].at(1);
                onlySignes.push_back(onlySignesDirty[i].at(0));
                onlySignes.push_back(onlySignesDirty[i].at(1));
            } else if(onlySignesDirty[i].indexOf("(") != -1 && onlySignesDirty[i].length() > 1) {
                onlySignes.push_back(onlySignesDirty[i].at(0));
                onlySignes.push_back(onlySignesDirty[i].at(1));
            } else {
                onlySignes.push_back(onlySignesDirty[i]);
            }
        }
После запуска выскакивает ошибка ASSERT failure in QList<T>::operator[]: "index out of range"
если закаментить второй пуш_бек после первого, то работает
но мне нужно два подряд
что делать?
что я не так делаю?
спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2017, 17:19
Ответы с готовыми решениями:

QVector<>::push_back()
QVector&lt;int&gt; freeList; freeList.push_back(id5_7-11); ругается : ошибка:...

Ошибка при push_back
При добавлении элементов в вектор m_Neurons в середине цикла возникает ошибка...

Непонятно, как работает push_back
Задали на неделю сделать программы, где нужно использовать std::vector. Сами...

Push_back(1.)
Доброго времени суток, уважаемые форумчане! Ковыряя чужой код, наткнулся на...

Push_back
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;iterator&gt; #include...

1
Горбаг
155 / 152 / 51
Регистрация: 25.09.2014
Сообщений: 767
Завершенные тесты: 2
15.03.2017, 17:30 2
Не вчитывался, но попробуй переписать код на обратный проход по листу. Обычно если что-то удаляешь из листа по индексу 0, то остальные итемы смещаются. Если было 2 элемента (индексы 0 и 1), ты удалил 0, затем пытаешься взять итем i++ (то есть первый), но он уже стал нулевым. Отсюда и выпадение в осадок, ибо обращаешься к несуществующему элементу. Я на этом сам часто проседаю по забывчивости. Не исключаю, что здесь тоже самое.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2017, 17:30

Push_back и emplace_back
Всем привет. Может кто нибудь подсказать для чего в STL контейнерах...

push_back vs emplace_back
собственно тема обсуждалась там, я сделал вывод, что надо использовать...

MPL push_back
А как тут push_back пользоваться?#include &lt;iostream&gt; #include &lt;type_traits&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru