c++ - 使用定界符以用户输入结束循环
问题描述
我想在不知道大小的情况下创建数组,仅取决于用户输入。诀窍是我从用户那里得到的唯一输入是数组 ex 的原始数据。1 2 3 4 5. 我的第一个想法是创建一个循环来收集数据并计算它们,直到找到一些分隔符。但是我不知道该怎么做,甚至可能吗?有任何想法吗?
解决方案
一种方法是:
std::vector<int> data;
std::copy(std::istream_iterator<int>(std::cin), {},
std::back_inserter(data));
其他:
std::vector<int> data;
int x;
while (std::cin >> x) {
data.push_back(x);
}
根据要求,还有其他方法。
如果数据以单行形式提供,则:
std::vector<int> data;
std::string line;
if (std::getline(std::cin, line)) {
std::copy(std::istream_iterator<int>(std::istringstream(line), {},
std::back_inserter(data));
}
推荐阅读
- amazon-quicksight - 是否可以在 Amazon Quicksight 中复制视觉对象?
- html - Powershell ConvertTo-HTML 缩小表格单元格中的图像
- c# - 用于将表与视图模型连接起来的 EF6 Linq 查询
- python - 小部件未显示在滚动区域中
- google-apps-script - 勾选复选框触发添加时间戳的功能
- android - 以 Android Q 为目标时构建失败,但在 API 28 上工作时出现“无法将文件 'android.jar' 转换为匹配属性”
- javascript - 使用 React 路由器更轻松地通过侧边栏导航动态呈现组件
- elasticsearch - 如何在 Windows Server 中使用 ElasticSearch 配置 Jaeger 收集器
- java - log4j 不记录带有 unicode 字符的消息
- java - 从java调用oracle存储过程时在mybatis mapper中映射多个out参数