在无法访问向量的情况下查找迭代器的末尾



在没有访问向量的情况下,有没有办法仅使用迭代器来确定迭代器是否到达向量的末尾?

例如,使用以下函数如何遍历迭代器:

list<int>::iterator foo(vector<list<int>>::iterator iter, int value)
{

}

你不能。 这就像获取指向数组的指针而不获取其大小一样。 除非有一个哨兵元素(如 c 字符串中的空字符(,否则无法知道容器停在哪里。

您需要获取对向量的引用,以便可以迭代它,或者将结束迭代器传递给函数,以便为循环设置边界。

最新更新