首页 > 解决方案 > 使用定界符以用户输入结束循环

问题描述

我想在不知道大小的情况下创建数组,仅取决于用户输入。诀窍是我从用户那里得到的唯一输入是数组 ex 的原始数据。1 2 3 4 5. 我的第一个想法是创建一个循环来收集数据并计算它们,直到找到一些分隔符。但是我不知道该怎么做,甚至可能吗?有任何想法吗?

标签: c++

解决方案


一种方法是:

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));
}

推荐阅读