gpt4 book ai didi

c++ - 是否可以在 cpp 中创建一组指向对象的指针?

转载 作者:行者123 更新时间:2023-11-28 04:23:10 25 4
gpt4 key购买 nike

在尝试创建一组 cpp 对象时,我遇到了这个问题

How do i insert objects into STL set 但我的疑问是,有没有办法不在集合中存储实际对象而是指向它们的指针,并且仍然能够保持集合的唯一实体属性。

最佳答案

set模板参数化为

template<
class Key,
class Compare = std::less<Key>,
class Allocator = std::allocator<Key>
> class set;

要将指针存储到类型T,同时确保唯一,您只需提供适当的 Compare 仿函数,它可以通过比较指针的取消引用值来比较指针。

例如,对于指向 some_type 的指针,我们可以使用如下内容:

class comparison {
bool operator()(const some_type* lhs, const some_type* rhs) const {
return *lhs < *rhs;
}
};

然后将集合声明为

std::set<some_type*, comparison> s;

关于c++ - 是否可以在 cpp 中创建一组指向对象的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54996200/

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