C++仅对一个元素集使用迭代器

Using C++ Iterator on a set of one only element

本文关键字:元素 迭代器 一个 C++      更新时间:2023-10-16

我几乎一直在使用迭代器来处理一组大小大于三个的元素,但碰巧生成的集合只包含一个元素,在这种情况下,以下循环:

for(i = data_set.begin(); i != data_set.end(); i++)
{
//do something with the data
}

即使"data_set"不为空,也永远不会输入,因为data_set.begin()==data_set.end()我正在做一个测试来处理这个特殊情况,但代码变得一团糟,不再干净。

应该怎么做才能正确处理这个问题?

谢谢

자스민

如果集合只包含 1 个元素,则: std::next( data_set.begin() ) == data_set.end() ,因为迭代器指向容器的第一个元素begin()end()指向最后一个元素之后的下一个元素。