gpt4 book ai didi

c++ - 返回对数据结构拥有的对象的引用

转载 作者:太空狗 更新时间:2023-10-29 23:06:45 24 4
gpt4 key购买 nike

我的集合:

std::set<Object> objects;

我想找到一个对象并将其作为引用返回,如果不存在则插入:

const Object& get(params...){
Object obj(params...);
std::set<Object>::const_iterator i = objects.find(obj);
if(i != objects.end())
return *i;
objects.insert(obj);
return * objects.find(obj);
}

这会导致段错误还是会一直有效?

最佳答案

取决于您对集合的处理方式。

std::set 中的插入和删除操作不会使集合中其他元素的迭代器失效,但是如果您要从 中删除该元素集合,那么迭代器和对它的引用将失效,您最终可能会得到一个无效的引用。

关于c++ - 返回对数据结构拥有的对象的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14692701/

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