c++ - std::set::equal_range 有什么用?

标签 c++ stl

由于 std::set 不能包含重复元素并且总是排序的,std::set::equal_range 将始终返回没有元素或只有 1 个元素的范围.从技术上讲,是的,这仍然是一个范围,但是这个算法的目的是什么?对于 std::set 来说似乎完全没有必要。

最佳答案

我只是猜测。但是,like count() ,当您在模板中并且不想确定您是在 std::set 还是其他关联容器上操作时,它有一些值(value)。

基本上,这是为了保持一致性。该函数确实按照宣传的那样执行,只是它有问题使用 versus 如果您孤立地使用 find() 之类的东西。如果您真的想要开箱即用的半开范围,它确实可以为您节省一个手动迭代器增量。 :P

关于c++ - std::set::equal_range 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48856274/

相关文章:

c++ - 模板类内部类的映射迭代器的正确语法?

c++ - 在构造函数中迭代 QTableWidget 单元格?

c# - P/Invoke c# 和 native c++

c++ - 为不存在的 map 返回什么迭代器如何签名?

c++ - std::priority_queue 中的比较器

c++ - begin()是有效的迭代器操作吗?如果是,它指的是什么?

c++ - 指向对象数组中函数的指针数组

c++ - 如何使用 libmicrohttpd/microhttpd 创建 HTTP POST 请求

c++ - 返回 'any kind of input iterator' 而不是 vector::iterator 或 list::iterator

c++ - 从 vector 到指针 vector 的最短转换