【发布时间】:2018-10-12 09:37:22
【问题描述】:
我只想打印前 10 个插入的项目,而将其余的留在后面。我必须使用什么代码(而不是使用 myset.end() )仅打印前 10 个整数而不是打印每个整数。
int main ()
{
std::set<int> myset;
std::set<int>::iterator it;
// set some initial values:
for (int i=1; i<=20; ++i)
myset.insert(i*10);
std::cout << "myset contains:";
for (it=myset.begin(); it!=myset.end(); ++it)
std::cout << *it << ' ';
std::cout << "\n\n";
return 0;
}
【问题讨论】:
-
std::set的迭代器不是ransom-access,所以最简单的方法是设置一个计数器,当它达到10时中断。 -
对于其他一些容器,比如
std:vector,可以使用begin() + 10作为10个元素后停止的结束条件。
标签: c++ stl iterator containers