C++ 随机整数表

C++ 随机整数表,c++,string,list,integer,C++,String,List,Integer,如果我有一个在一行上用空格分隔的整数列表(例如:50 34 1 3423 5 345),那么让它们成为一个单独的整数变量的最佳方法是什么?使用cin收集整数列表?看看strtok()和atoi()的手册页看看strtok()和atoi()的手册页,下面是sehe回答的后续内容,您将如何更详细地完成它(嗯哼) #include <iostream> #include <vector> #include <iterator> std::vector<int

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

看看
strtok()
atoi()的手册页

看看strtok()和
atoi()

的手册页,下面是sehe回答的后续内容,您将如何更详细地完成它(嗯哼)

#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 <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
}
#包括
#包括
int main()
{
std::载体粘虫;
int tmp;
而(std::cin>>tmp){
myInts.push_back(tmp);
}
//现在'myInts'是一个包含所有整数的向量
}

继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
}
#包括
#包括
int main()
{
std::载体粘虫;
int tmp;
而(std::cin>>tmp){
myInts.push_back(tmp);
}
//现在'myInts'是一个包含所有整数的向量
}


谢谢-请解释一下。。。有没有这样的答案?@sehe-你不觉得这个答案对于这个行动来说太基本了一点吗?@Pete我不同意。这正是初学者应该使用的代码类型。初学者自己编写的代码越少越好。@Pete:我倾向于公布答案的核心,然后花一些时间润色,通常取决于操作feedback@sehe:我想。。你的意思是
std::istream\u迭代器(iss)
。。而不是
std::istream\u迭代器(cin)
。谢谢-想解释一下。。。有没有这样的答案?@sehe-你不觉得这个答案对于这个行动来说太基本了一点吗?@Pete我不同意。这正是初学者应该使用的代码类型。初学者自己编写的代码越少越好。@Pete:我倾向于公布答案的核心,然后花一些时间润色,通常取决于操作feedback@sehe:我想。。你的意思是
std::istream\u迭代器(iss)
。。而不是std::istream\u迭代器(cin).Ew。“现在是21世纪了,老兄。”托马拉克·盖雷特·卡尔说,“老天爷,我还保留着我在马车鞭子上的投资呢!”!电子战。“现在是21世纪了,老兄。”托马拉克·盖雷特·卡尔说,“老天爷,我还保留着我在马车鞭子上的投资呢!”+1呵呵。谢谢你拿起我的工作来解释这个尴尬的STL:)我想在实践中,我真的会建议这样做。虽然,是的,出于一些纯粹的原因,我确实更喜欢做事情的算法变体。我不明白——如果我在一行中输入所有的整数,这是怎么回事?@PigHead:行是不相关的<代码>>读取尽可能多的字符,同时这些字符对
int
有效,然后停止。它也倾向于忽略空白,所以它将立即准备提取下一个看起来像数字的子字符串。这是我真正需要知道的唯一事情!Thanks@PigHead:没问题。iostreams有点垃圾。祝你好运+1呵呵。谢谢你拿起我的工作来解释这个尴尬的STL:)我想在实践中,我真的会建议这样做。虽然,是的,出于一些纯粹的原因,我确实更喜欢做事情的算法变体。我不明白——如果我在一行中输入所有的整数,这是怎么回事?@PigHead:行是不相关的<代码>>读取尽可能多的字符,同时这些字符对
int
有效,然后停止。它也倾向于忽略空白,所以它将立即准备提取下一个看起来像数字的子字符串。这是我真正需要知道的唯一事情!Thanks@PigHead:没问题。iostreams有点垃圾。祝你好运
#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
}