gpt4 book ai didi

java - 在 C++ 中是否有一个具有类似功能的 TreeSet 数据结构?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:01:12 27 4
gpt4 key购买 nike

我需要在 C++ 中使用 Tree Set 数据结构(在 java 中可用),并使用像 TreeSet.lower(i) 和 TreeSet.higher(i) 这样的函数 -> 返回较低的元素,并且只是在给定的树集中高于 i。有STL吗?

编辑:以下是我需要的功能,我想知道如何使用 upper_bound 和 lower_bound 函数来实现:

for (int i = 1; i<10; i++) myset.insert(i * 10); // 10 20 30 40 50 60 70 80 90
int k = 50; // I need 40 and 60
set<int>::iterator itr = myset.find(k);

if (itr != myset.end()) {
// Found the element
itr--; // Previous element;
cout << *(itr); //prints 40
itr++; // the element found
itr++; // The next element
cout << *(itr); // prints 60
}

最佳答案

使用std::set ,通常实现为二叉搜索树。

它的 insert()erase()find() 方法的大小是对数的,但如果提示是给出。对数复杂度引用 Java TreeSet .

我想你应该对std::lower_bound感兴趣,它返回一个迭代器到下界,并且在 std::upper_bound ,它返回一个迭代器到上限。

关于java - 在 C++ 中是否有一个具有类似功能的 TreeSet 数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50078250/

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