gpt4 book ai didi

c++ - 指向引用 : changing the orignal value 的指针

转载 作者:行者123 更新时间:2023-11-30 03:17:41 26 4
gpt4 key购买 nike

我在某处存储了一个 People 对象的 vector

std::vector<People> people;

现在我找到一些特殊的人并获得他们的引用,然后获得他们的指针并存储在一个 vector 中:

std::vector<People*> newlist;

我得到这个列表的方式:

People& specialPeople = getSomeSpecialGuyFrom(people); // get a referece 
newlist.push_back(&specialPeople);
// New I sort the newlist by some property, assuming it's not empty:
std::nth_element(newlist.begin(),
newlist.begin() + 1,
newlist.end(),
[](const People* p1,
const People* p1) {
return p1->reputation > p2->reputation;
});
newlist[0]->name = "Best one";

请注意,我保持原始人物 vector 不变。存储指针的目的是使排序便宜。现在我的问题是,最后一项作业是否改变了原来的人员 vector ?从我阅读代码的方式来看应该如此,但实际上我看到了相反的结果?对不起,我不能在这里使用真正的代码...

最佳答案

the last assignment, is it changing the original people vector?

视情况而定。

当且仅当 getSomeSpecialGuyFrom 返回对原始人员 vector 中对象的引用并且引用/指针未失效时,答案是肯定的。

关于c++ - 指向引用 : changing the orignal value 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55285898/

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