buff_d1; 我需要修改“内部” vector : buff_d1.at(i).removeFirst(); buff_d1.at(i).push_-6ren">
gpt4 book ai didi

c++ - QVector>修改 "inside"vector

转载 作者:太空狗 更新时间:2023-10-29 20:39:46 26 4
gpt4 key购买 nike

我在 QT 中有以下变量:

QVector<QVector <int> > buff_d1;

我需要修改“内部” vector :

buff_d1.at(i).removeFirst();
buff_d1.at(i).push_back(d1.at(i).at(sample_number));

这是导致错误的原因:

    passing 'const QVector<int>' as 'this' argument of 'void QVector<T>::removeFirst() [with T = int]' discards qualifiers [-fpermissive] buff_d2.at(i).removeFirst();
passing 'const QVector<int>' as 'this' argument of 'void QVector<T>::push_back(const T&) [with T = int]' discards qualifiers [-fpermissive] buff_d1.at(i).push_back(d1.at(i).at(sample_number));

我知道“内部” vector 是 const,所以我不能修改它,但是解决它的方法是什么?

最佳答案

你的 at()函数返回一个 const 引用:

const T & QVector::at(int i) const

并且您正在尝试使用 removeFirst() 修改它功能。您应该使用 [] operator修改它,因为它提供了一个非常量返回重载:

T & QVector::operator[](int i)

同样适用于第二个错误。

关于c++ - QVector<QVector int>>修改 "inside"vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26627558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com