如果我在一行上有空格分隔的整数列表(例如:50 34 1 3423 5 345),那么将它们中的每一个作为单独的整数变量的最佳方式是 - 收集列表整数与cin
?随机整数列表
随机整数列表
回答
在后续sehe的答案,这里是你会怎么做稍微详细些(ahem)。
sehe使用的算法基本上内部做到这一点。这个答案主要是为了清晰。
#include <iostream>
#include <vector>
int main()
{
std::vector<int> myInts;
int tmp;
while (std::cin >> tmp) {
myInts.push_back(tmp);
}
// Now `myInts` is a vector containing all the integers
}
#include <iostream>
#include <vector>
#include <iterator>
std::vector<int> ints;
std::copy(std::istream_iterator<int>(cin),
std::istream_iterator<int>(),
std::back_inserter(ints));
完成。如果你真的需要explicetely读行明智:
#include <sstream>
#include <iostream>
#include <vector>
#include <iterator>
std::string singleline;
std::istringstream iss; // out of loop for performance
while (std::getline(cin, singleline))
{
iss.str(singleline);
std::copy(std::istream_iterator<int>(iss),
std::istream_iterator<int>(),
std::back_inserter(ints));
}
的istream_iterator<int>
将重复应用operator>>(int&)
所引用的流(直到流的末尾)。默认情况下,这会默默地忽略空格,它会抛出一个异常,如果输入的操作失败(如非整数输入遇到)
的back_inserter是输出迭代,你可以与所有类型的容器使用(如vector
)支持.push_back
操作。所以其实什么STL algorithmese写有类似
std::vector<int> ints;
while (iss>>myint)
{
ints.push_back(myint);
}
看看man页面strtok()
和atoi()
Ew。现在是21世纪,哥们。 – 2011-04-24 20:31:19
@Tomalak Geret'kal - 上帝保佑我在马车鞭子上的投资! – 2011-04-24 20:38:05
为什么要写作业标签? – pighead10 2011-04-24 21:11:32
- 1. 自调整随机列表
- 2. 使用随机数发生器整数随机排列
- 3. 随机整数号
- 4. 随机整数:Android
- 5. 伪随机整数
- 6. 随机整理数字序列
- 7. Java - 在整数数组中搜索随机值列表
- 8. 从整数列表中选择一个随机数
- 9. 随机整数,计算和表格
- 10. 将随机整数插入表中?
- 11. 随机整数数组
- 12. 随机随机化项目列表
- 13. Python随机列表
- 14. 在C#中随机“整理”(整理)整数列表的最有效方法
- 15. 使用整个列表中的伪随机数生成
- 16. 如何生成递增随机整数列表
- 17. 我如何替换整数,显示了两次随机列表
- 18. Lisp:生成一个10个随机整数的列表
- 19. 根据分布生成一组随机整数列表
- 20. 使用asmack的不完整和随机数的朋友列表
- 21. Python:创建状态空间有限的随机整数列表
- 22. 没有零的随机整数列表Python
- 23. 在python中生成随机整数列表3
- 24. 如何将随机列表中的整数相乘
- 25. 返回一个整数的随机列表,Python 3.3
- 26. 随机整数列表上的F#选择排序
- 27. SQL查询从给定的整数列表中随机选择一个整数?
- 28. 打印随机整数
- 29. MATLAB中的随机整数
- 30. 随机整数移位
+1合合。感谢您接受我的工作来解释这个尴尬的STL-ese :)我想在实践中,我实际上会提出这个建议。尽管如此,我确实更喜欢稍微纯粹的理由来处理这个算法。 – sehe 2011-04-24 20:36:41
+1为*答案主要是为了清晰*。 – Nawaz 2011-04-24 20:40:21
+1为活的例子 - 非常有帮助。 – 2011-04-24 20:49:29