Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我使用红黑树作为数据结构。它比std::无序地图好吗?_C++_Stl_Tree - Fatal编程技术网

C++ 我使用红黑树作为数据结构。它比std::无序地图好吗?

C++ 我使用红黑树作为数据结构。它比std::无序地图好吗?,c++,stl,tree,C++,Stl,Tree,我希望通过用任何其他数据结构替换红黑树来提高代码性能。我把这棵红黑的树放在内存中,而不是磁盘上。您能推荐其他在搜索、插入和删除方面比红黑树更快的选项吗?您使用RB树的目的是什么?如果需要存储的对象符合排序标准,那么RB树可能是更好的选择。但是,我建议使用STL的容器,这些容器使用平衡的BSTstd::map和std::set实现 如果您不关心对象的顺序,那么使用哈希表。C++11引入了std::unordered_映射和std::unordered_集,它们平均具有恒定的插入和查找时间。哪个“更

我希望通过用任何其他数据结构替换红黑树来提高代码性能。我把这棵红黑的树放在内存中,而不是磁盘上。您能推荐其他在搜索、插入和删除方面比红黑树更快的选项吗?

您使用RB树的目的是什么?如果需要存储的对象符合排序标准,那么RB树可能是更好的选择。但是,我建议使用STL的容器,这些容器使用平衡的BSTstd::mapstd::set实现


如果您不关心对象的顺序,那么使用哈希表。C++11引入了std::unordered_映射std::unordered_集,它们平均具有恒定的插入和查找时间。

哪个“更好”取决于您的用例。排序的std::vector或是一个选项元素有多大?你有多少?您必须多久搜索/插入一次。您需要订购数据吗?您当前的tje rb树的实现来自哪里?元素的数量很大,超过lac。搜索和插入非常频繁。排序是存在的,但暂时可以忽略。此外,我建议观看Chandler Carruth的“算法效率,数据结构性能”(Efficiency with Algorithms,Performance with Data Structures)()如果排序不重要,哈希表比rb tree快吗?Hast表不具有用于搜索的内置b树结构吗?我可以使用B树而不是rb树来获得性能吗?哈希表与任何类型的树都没有任何关系。这是另一种数据结构。