在没有访问向量的情况下,有没有办法仅使用迭代器来确定迭代器是否到达向量的末尾?
例如,使用以下函数如何遍历迭代器:
list<int>::iterator foo(vector<list<int>>::iterator iter, int value)
{
}
你不能。 这就像获取指向数组的指针而不获取其大小一样。 除非有一个哨兵元素(如 c 字符串中的空字符(,否则无法知道容器停在哪里。
您需要获取对向量的引用,以便可以迭代它,或者将结束迭代器传递给函数,以便为循环设置边界。