Qt5: Обращение к данным в QVector для записи данных

135
19 ноября 2020, 11:10

Есть класс (который по сути своей структура и далее я буду называть его именно так):

class GoodPosition
{
    int GSID; //Good or Service ID
    int Amount;
    double Price;
    int DealID; // Link to Basket ID
    int NumOfCell;//number of position in current basket
/*Далее идут конструкторы и геттеры, но их я опустил, дабы не мешались*/
}

Эта структура лежит в векторе QVector Goods

QVector<GoodPosition> * Goods = new QVector<GoodPosition>();

Мне необходимо обратиться к элементу вектора по индексу и к полю структуры для того, чтобы изменить это поле. Я делаю это так:

    void CheckDublicates()// данный метод пробегает по исходному списку и уничтожает дубликатные объекты, объединяя их в один. 
    {
        for (int i = 0; i < Goods->count(); i++)
        {
            for (int j = i + 1; j < Goods->count(); j++)
            {
                if (Goods->at(i).GSID == Goods->at(j).GSID)
                {
                  //  this->Goods->at(i).Amount = this->Goods->at(i).Amount + this->Goods->at(j).Amount;
                    this->Goods->at(i).Amount = addAmount(this->Goods->at(i), this->Goods->at(j));
                }
            }
        }
    }

Естественно, такая конструкция не работает. Это, как я понял, потому что at(i) возвращает нам константу и даёт работать только с константными методами.

Вопрос: Как изменить данные в ячейке структуры, которая лежит в QVector???

Answer 1

Согласно словам @vegorov, для того, чтобы обратиться к ячейке на запись в QVector нужно вместо at(i) использовать operator[](i).

READ ALSO
Как объявить функцию, если не объявлена

Как объявить функцию, если не объявлена

На ОС Linux есть функция getchar_unlocked()

141
Помогите разобраться с переносом слов

Помогите разобраться с переносом слов

Есть программа, которая хорошо работает с небольшим объемом текста

131
сортировка индексным массивом с++

сортировка индексным массивом с++

Задача была написать тривиальную структуру и отсортировать ее в процентном соотношении по кол-ву поступивших в вуз учеников методом сортировки...

273
Как работает emplace с точки зрения памяти?

Как работает emplace с точки зрения памяти?

Как работает emplace с точки зрения размещения в памяти ?

119