Название: Вектор очередей Отправлено: Ced от Май 01, 2017, 14:27 Создал такую конструкцию
QVector<QQueue<Message>> *recived; Инициализировал recived = new QVector<QQueue<Message>>(Message::last_command); При первой же попытке recived[Message::give_time_periods_lists].data()->append(lastMessage); получаю Segmentation В отладчике смотрю, вроде вектор существует, нужной размерности. Message::give_time_periods_lists за пределы размерности не выходит. В каждом элементе вектора видна очередь. Сказано, что она содержит 0 элементов. Что не так? Название: Re: Вектор очередей Отправлено: Ced от Май 01, 2017, 15:15 А вот такой идиотизм
QQueue<Message> temp; temp.enqueue(lastMessage); // recived[Message::give_time_periods_lists].data()->enqueue(lastMessage); recived->remove(Message::give_time_periods_lists); recived->insert(Message::give_time_periods_lists, temp); от чего-то работает. Название: Re: Вектор очередей Отправлено: Igors от Май 01, 2017, 15:33 Пользуйтесь тегом для обрамления кода
recived = new QVector<QQueue<Message>>(Message::last_command); Это Вы обратились не к "элементу вектора" а к "массиву этих векторов". Правильно напр такПри первой же попытке recived[Message::give_time_periods_lists].data()->append(lastMessage); получаю Segmentation Код И точнее здесь использовать QList вместо QVector Название: Re: Вектор очередей Отправлено: Ced от Май 01, 2017, 16:30 В итоге так работает:
Код:
Название: Re: Вектор очередей Отправлено: Ced от Май 01, 2017, 16:32 Это Вы обратились не к "элементу вектора" а к "массиву этих векторов". Правильно напр так Код И точнее здесь использовать QList вместо QVector Однако, спасибо. На будущее учту. |