【发布时间】:2014-10-28 18:06:23
【问题描述】:
我生成了一个 data.txt 文件,其中包含大量整数,分为两列。
如何将这些整数保存到数组中?
如果有帮助,您可以找到data.txt here。示例:
600000
523887 283708
231749 419866
293707 273512
296065 215334
233447 207124
264381 460210
374915 262848
449017 329022
374111 151212
2933 496970
我试过这个,但由于某种原因它不起作用..
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream input("data-for-union-find.txt");
int i=0;
float a;
int size=0;
size=i/2;
while (input >> a)
{i++;
}
int *x=new int[size];
int *y=new int[size+1];
for(int j=0;j<(size+1);j++)
{
input>>x[j];
input>>y[j];
cout<<x[j]<<" "<<y[j]<<" "<<j<<endl;
return 0;
}
}
【问题讨论】:
-
push_back到std::vector<int>是你的朋友 -
std::vector<std::pair<int,int> myvector; std::copy(std::istream_iterator<std::pair<int,int>>(std::ifstream("data-for-union-find.txt")),std::istream_iterator<std::pair<int,int>>(),std::back_insert_iterator(myvector)); -
@MooingDuck 没有为
std::pair定义提取器,std::istream_iterator采用非常量左值引用。 -
@0x499602D2:我为 back_inserter 函数使用了错误的名称。事实证明,提取器位比我预期的更难解决。 coliru.stacked-crooked.com/a/d16b8bd180180e61
-
@MooingDuck 我找到了关于该主题的相关帖子。 -- stackoverflow.com/questions/16548379/…
标签: c++