在一组唯一元素上使用C ++ Iterator

时间:2018-01-10 14:13:11

标签: c++ for-loop iterator

我在几乎所有时间都使用一组大小超过三的元素的迭代器,但是生成的集合只包含一个元素,在本例中是以下循环:

for(i = data_set.begin(); i != data_set.end(); i++)
{
//do something with the data
}
即使"data_set"不为空,也永远不会输入

,因为data_set.begin()==data_set.end() 我正在做一个测试来单独处理这个特殊情况,但代码变得一团糟,不再干净。

应该怎样做才能妥善处理?

谢谢,

자스민

1 个答案:

答案 0 :(得分:0)

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