У меня есть некоторые элементы в элементе QMap<double, double> a
. Теперь я хочу получить вектор некоторых значений a
. Самый простой подход был бы (для меня):Получение части QMap в качестве QVector
int length = x1-x0;
QVector<double> retVec;
for(int i = x0; i < length; i++)
{
retVec.push_back(a.values(i));
}
с x1
и x0
как и с частыми остановками старт-позиции элементов, которые будут скопированы. Но есть ли более быстрый способ вместо этого для цикла?
Редактировать: С «более быстрым» я имею в виду как быстрее, так и (невозможно, как указано) более быстрое выполнение. Как было указано, values(i)
работает не так, как ожидалось, поэтому я оставлю его здесь как псевдокод, пока не найду лучшую замену.
Вы спрашиваете, есть ли более быстрый способ, но, глядя на ваш код, похоже, что он вообще не работает. 'QMap :: values ()' возвращает 'QList', поэтому вы пытаетесь добавить 'QList' в качестве элемента вектора удвоений. Кроме того, вы на карте полны двойников, и все же вы используете целое число в качестве ключа. –
dtech
@ddriver: Заметил, спасибо! Я исправлю это, как только найду возможную замену. –