c – 如何通过读取文件来填充向量?

我正在尝试读取包含邻接列表的文件

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 );
    }    
}
上一篇:尽管一切似乎都已到位,但ifstream文件仍无法打开(c)


下一篇:C read()问题