c++ - 如何从容器中迭代前十个项目
问题描述
我只想打印前 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::next
如下:
const auto begin = myset.begin();
const auto end = myset.size() < 10 ? myset.end() : std::next(begin, 10);
for (auto it = begin; it != end; ++it) {
std::cout << *it << ' ';
}
推荐阅读
- ios - 无法将我的 iOS 应用程序与 Crashlytics 同步
- pulseaudio - 如何在 pulseaudio 上远程管理音量
- javascript - Node.js - 如何获取远程音频文件的持续时间?
- android - 如何使用 kotlin 在 android 上处理后退按钮 DrawerNavigation
- python - ruamel.yaml 安装另一个 python 包的问题
- kotlin - 如何为相同的资源使用多个路由
- javascript - 如何根据列表中的项目数多次显示通知
- python - 格式化文档名称
- php - 雄辩的关系不适用于查询
- r - 如何创建没有重叠条的 ggplot 条形图?