我正在尝试重构一些不使用 STL 的代码以使用它提供的通用算法。我有一个这样的结构:
struct A {
int i;
//other stuff...
};
// ...
A* array; // array of A objects, sorted by A::i member
int n = ...; // array size
然后有一个被编码的函数,它接受A
和n
一个整数k
,其目的是给我指向数组的第一个和最后一个元素的指针,它们的i
成员等于k
。
这是根据二进制搜索手动实现的。我正在考虑使用std::equal_range
. 问题是它需要 A 类型的对象才能工作,它迫使我引入一个“虚拟” A 对象,其i
成员等于k
.
有没有办法使用 STL 来做到这一点,而不必引入“虚拟”对象?谢谢