求教C++
#include<vector>
#include<iostream>
#include<fstream>
#include<sstream>
using namespace std;
typedef vector<int> VI;
typedef vector<VI> VII;
void input(VII &m)
{
ifstream in("abc.txt");
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 VII & 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<<"\n";
}
int main()
{
VII matrix;
input(matrix);
VI vec;
if(findVec(matrix,vec))
print(vec);
}
for(istringstream sin(s);sin>>t;m[m.size()-n-1].push_back(t));
这行是什么意思?谢谢!
[解决办法]
相当于:
istringstream sin(s);
while(sin>>t)
m[m.size()-n-1].push_back(t);
[解决办法]
for(istringstream sin(s);sin>>t;m[m.size()-n-1].push_back(t));
istringstream sin(s);的意思是将一个istringstream对象与所读取的行绑定起来;
sin>>t;的意思是使用普通的string输入操作符即可读出每行中的单词,因为上面进行了绑定;
m[m.size()-n-1].push_back(t);的意思就是往容器里添加元素;