【发布时间】:2013-09-01 07:05:55
【问题描述】:
我正在尝试将文本文件中的整数值读取到向量中。
输入文件ip1.txt有以下内容:
4
-1000 -2000 -3000 -4000
int maxsub(vector<int> a, int size)
{
a.erase(a.begin());
vector<int> sum;
for(vector<int>::iterator w=a.begin(); w <= a.begin()+size-1; ++w)
{
int j;
int s=*w;
for(int t=0; t <= size-1; t++)
{
j = s + a[t];
sum.push_back(j);
}
a.pop_back();
}
std::sort(sum.begin(),sum.end());
int u = sum.size()-1;
int m = sum.at(u);
return m;
}
int main()
{
std::vector<int> nums( (std::istream_iterator<int>(std::cin)),
std::istream_iterator<int>() );
int k = nums[0];
int u = maxsub(nums,k);
cout << u <<endl;
}
我收到“超出内存限制”的警告消息
如何限制向量在输入文件中只读到 -4000,我正在使用文件重定向
*./123
【问题讨论】:
-
我会使用
for或while循环一次读取一个元素,直到标记值-4000.... -
文件有多大?在我看来您的代码有错误,我想知道错误是由这些错误之一引起的,而不是文件的大小。
-
如果可以
w < a.begin()+size,为什么要w <= a.begin()+size-1? -
为什么
int u = sum.size()-1; int m = sum.at(u); return m;可以做到return sum.back();?
标签: c++ string parsing file-io vector