我正在尝试读取包含邻接列表的文件
1 37 79 164 15
2 123 134 10 141 13
其中每行中的第一个数字是顶点,后面的数字是其相邻的顶点.
这是我从文件中读取的代码.我已经能够在一个字符串中添加一行,但不知道如何继续填充向量.
ifstream ifs;
string line;
ifs.open("kargerMinCut.txt");
std::vector<vector <int> > CadjList(vertices);
while(getline(ifs,line)){
}
有什么建议么 ?
解决方法:
您可以在sstream标头中使用stringstream.
ifstream ifs;
string line;
ifs.open("kargerMinCut.txt");
std::vector<vector <int> > CadjList(vertices);
while(getline(ifs,line)){
// transfer the line contents to line_stream.
stringstream line_stream( line );
// transfer line_stream to int variables.
int tail_node;
if ( line_stream >> tail_node ) // now do whatever you want with it.
{
int head_node;
while ( line_stream >> head_node )
CadjList[tail_node].push_back( head_node );
}
}