聊聊c++中的set

网友投稿 596 2022-10-17

聊聊c++中的set

聊聊c++中的set

在java中,存放不同元素的容器是set,元素是否相同使用equals方法和hashCode方法来定义。 假如要给set中存放自定义类,那么就得实现equals方法和hashCode方法。 在c++中也有c++,用来存放不同的元素,天真的我也就直接使用了set,并且重载了==运算符 结果发现,里面是有问题。 c++中的set有两种,分别是 c++中的std::set,是基于红黑树的平衡二叉树的数据结构实现的一种容器,因为其中所包含的元素的值是唯一的 unordered_set的实现方式为哈希函数,所以无序关联容器不会根据key值对存储的元素进行排序 所以简单的来说,使用有序set,你得重载小于号 里面你只要记住两点,如果两个元素相等,就返回false 如果两个元素不相等,那么就得指定一个不会矛盾的比较方法。 使用无序set,那就和java类似了。 第一重载==运算符 第二自定义hash函数 其实如果单纯的只是想存放一堆不同的元素,在c++中应该使用unordered_set。 我之前的问题是知道java中有个set,相同的需求就直接用了c++中的set。 另外unordered_set是c++11才出来的。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:shineframe : 高性能超轻量级C++开发库及服务器编程框架
下一篇:studio.ml:用来简化、加快模型构建过程的模型管理框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~