Есть класс, который хранит в себе двумерный массив QVector(Аналог std::vector в Qt)
class Field : public QAbstractListModel
{
Q_OBJECT
public:
Field(int width = 0, int height = 0);
QVector<int>& operator[](int n) {return (v_field.begin()[n]);}
private:
int width, height;
QVector< QVector<int> > v_field;
};
То как я перегрузил оператор [] видно в коде выше. Вопрос: как присвоить значение QVector< QVector > v_field, через экземпляр класса Field. Т.е. если сделать так:
field[0][0] = 0; // Экземпляр класса Field
А потом вывести
qDebug() << "<<<<<<<<<<" << this->field[0][0];
Получаю старое значение. Т.е. field[0][0] = 0 не меняет v_field. (А я хочу чтобы получилось аналогично v_field[0][0] = 0)
QVector<int>& operator[](int n) {return v_field[n];}
const QVector<int>& operator[](int n) const {return v_field[n];}
Возможно, также стоит добавить ассерты для проверки выхода за пределы вектора.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей