例如,如何在没有任何其他信息的情况下实现以下功能?
bool isEnd(set<int> :: iterator itr);
我知道我可以这样做,但是如何在没有输入变量“s”的情况下做到这一点?
bool isEnd(const set<int> &s, set<int> :: iterator itr) {
return itr == s.end();
}
你不。
一个范围是两个迭代器,当你移动迭代器时,你应该几乎总是在一个范围上工作。
容器也是范围,因此您可以随身携带容器,但通常不需要完整的容器。
使用标准 C++ 库,没有办法编写它。
std::set
可以实现为例如红黑树,然后迭代器是内部的节点,您需要整个树来确定该节点是否是最后一个。