繁体   English   中英

简单独特的STL容器

[英]simple unique STL container

是否有一个像std::list这样的唯一容器,它具有简单的功能( pushpopclear等),并且不像std::set那样没有排序顺序,或者我可能需要扩展std::list并添加自己的push_unique方法))?

STL应该提供有效的容器。

不允许重复的容器需要支持快速查找,以确定想要的值是否已经存在于集合中。

std::set使该项目按一棵红黑树排序,这使得可以进行O(log(n))查找,插入和删除。

std::unsorted_set允许进行恒定时间的查找,插入和删除,但是您需要为大多数UDT类型提供哈希函数,需要处理诸如重新哈希等会导致迭代器无效的问题,并且您无需进行任何操作为您的商品定义的顺序(甚至不是插入顺序)。

如果要使用简单的集合(例如std::vector而不允许重复,则需要提供自己的适配器。

但是,我仍然无法弄清为什么排序容器对诸如std::set这样的容器有问题,正如您所说的那样,顺序对您而言并不重要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM