【发布时间】:2015-08-12 22:35:23
【问题描述】:
是否有可能从一个向量中得到一个const迭代器,该迭代器在失效之前只能迭代向量的某个范围?
例如,如果我有一个包含 10 个元素的向量,我想返回一个包含 4 到 7 个元素的迭代器。
伪代码:
int main()
{
std::vector<int> vector = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
auto iterator = GetRangedIterator(vector, 4, 7)
for (const int& num : iterator)
print num; // 4, 5, 6, 7
}
【问题讨论】:
-
迭代器不会变得“无效”,它们只是变得等于结束迭代器。由于您可以随意使用任何您想要的迭代器作为结尾,这很简单。