钱能书上函数问题
小弟最近一直看钱能第二版,第五章有个例子总调不通,我是新手又看不懂错误提示,请大家帮忙。
错误提示:Microsoft C++ 异常: 内存位置 0x0012f6fc 处的 std::length_error。
代码如下:
#include<vector>
#include<iostream>
#include<fstream>
#include<sstream>
using namespace std;
typedef vector<int> vi;
typedef vector<vi> vvi;
void print(const vi&);
void input(vvi&);
bool findvec(const vvi&,vi&);
int main()
{
vvi matrix;
input(matrix);
vi vec;
if(findvec(matrix,vec))
print(vec);
}
void input(vvi& m)
{
ifstream in("abc.in");
int n,t;
in>>n;
m.resize(n);
for(string s;n-- && getline(in,s); )
for(istringstream sin(s);sin>>t;m[m.size()-n-1].push_back(t));
}
bool findvec(const vvi& matrix,vi& v)
{
for(int i=0;i<matrix.size();++i)
for(int j=0;j<matrix[i].size();++j)
if(matrix[i][j]==-1)
{v=matrix[i];
return true;
}
return false;
}
void print(const vi& v)
{
for(int i=0;i<v.size();++i)
cout<<v[i]<<" ";
cout<<endl;
}