gpt4 book ai didi

c++ - 将结构中的 Vector 分配给 main 中 A Vector 的内容

转载 作者:行者123 更新时间:2023-11-28 07:42:11 27 4
gpt4 key购买 nike

我有一个结构:

struct node
{
QPoint position;
QVector<node> neighbours;

void add(QPoint);
void addNeighbours(QVector<node>);

...
};

使用方法:

void node::add(QPoint p)
{
position = p;
}

void node::addNeighbours(QVector<node> n)
{
neighbours = n;
}

但是,当我尝试使用 addNeighbours 时,出现以下错误:

error: C2662: 'node::addNeighbours' : cannot convert 'this' pointer from 'const node' to 'node &'
Conversion loses qualifiers

从网上看,我认为解决方案来自;使用正确的指针并可能通过 QVectors::Iterator()。虽然我无法提出解决方案,但非常感谢任何指向正确方向的指示或解释为什么会发生这种情况。

主要内容:

int main(int argc, char *argv[])
{
QVector<node> map;
QVector<node> tmp;
node n;

//Populate map
for(int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)
{
n.add(QPoint(i,j));
map.append(n);
}

//Add required nodes to tmp
tmp.append(map.at(1));
tmp.append(map.at(3));

//Set the neighbour nodes of map(0) using tmp vector
map.at(0).addNeighbours(tmp);
}

最佳答案

改变

map.at(0).addNeighbours(tmp); // at() : returns a const reference

map[0].addNeighbours(tmp); // [] : returns a non-const reference

此外,最好将 addNeighbours 更改为:

 void node::addNeighbours(const QVector<node> &n)

关于c++ - 将结构中的 Vector 分配给 main 中 A Vector 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15592371/

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