如何实现通用的(适用于multimap、排序向量等)相等范围迭代器?我的意思是一个由一对迭代器(begin和end表示特定equal_range的起始位置和结束位置)组成的迭代器。
这样做的动机是我有一个名为sortedword2word的multimap,我使用它来在一个字符串数组中检测变位词。因此,我希望有一种简单地遍历每个等值范围的方法(易于通过代码行数/可读性 - 我知道我可以通过手动检查.end()以及下一个是否与当前相同来轻松实现...)。
如果Boost已经实现了这样的功能,那也可以接受。
这样做的动机是我有一个名为sortedword2word的multimap,我使用它来在一个字符串数组中检测变位词。因此,我希望有一种简单地遍历每个等值范围的方法(易于通过代码行数/可读性 - 我知道我可以通过手动检查.end()以及下一个是否与当前相同来轻松实现...)。
如果Boost已经实现了这样的功能,那也可以接受。
lower_bound/upper_bound
可以获得一个指向范围开头的迭代器。然后只需在while(*current == *next)
迭代即可... - jrokequal_range(v.begin(), v.end(), value)
它如何成为一个迭代器?你是指value++
吗?或者你的向量没有排序,因此可能存在多个相等的范围? - kwjsksai