gpt4 book ai didi

c++ - 随机整数列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:10:06 24 4
gpt4 key购买 nike

如果我在一行中有一个由空格分隔的整数列表(例如:50 34 1 3423 5 345),那么使它们中的每一个成为单独的整数变量的最佳方法是什么 - 收集整数列表cin?

最佳答案

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

完成。如果您真的需要逐行明确阅读:

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

关于c++ - 随机整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5773037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com