c++中如何用一个STL list实现2d array的效果?

我需要读取一个text的文件,文件的每一行存到一个stl list里。比如文件有10行 那么就有10个stl list 每个list里的元素就是这一样的所有字符
然后还有一个stl list用来存储文件的列,他是以这10个list作为子元素,把它们串联到一起
请问如何实现?
先写过各位大神了

我给你写了一个测试例子,读取txt你自己写很简单

我就不写了

#include<list>
#include<string>
#include<iostream>
using namespace std;
void main()
{
    list<list<string> > lt;
    lt.push_back(list<string>(10,"12345"));
    for(list<list<string> >::iterator it=lt.begin();it!=lt.end();it++)
        for(list<string>::iterator ot=it->begin();ot!=it->end();ot++)
            cout<<*ot<<endl;
}

 

追问

谢谢大神 不过我还有个问题
因为我还要用子list读取文件的每一行嘛,我用的是while(!fin.eof())读整个文件然后用while(getline())读每一行,再用push_back把string拆成char存到子list里。可这样的话结果就是把整个文件存到一个list里了。
请问大神如何做到每读取完一行就自动结束当前list,并把下一行存到一个新的list里?

追答

直接用这个函数就可以了push_back,他会不断加入

还有你list单元存储的是char还是string
如果是char 直接用ifstream in; char s;
in>>s; 当换行再处理,如果是string 你可以用getline 或是设置一个大的缓冲区 也用上面的方法,这题目很简单,不难,自己多动动手

追问

可能我没把话说明白,比如txt里是一首古诗,那我第一个list里存的就是床前明月光,第二个list就是疑是地上霜,最后那大的list就是把几行串联一起

我就是还搞不懂“12345”那部分,也就是每行的内容怎么输入
只用一个push_back它会把整个txt文件都存到一个list里吧?我觉得应该有段代码是用来告诉程序这行文本已经读完,要开始读下一行文本,并且要存在下一个list里面
刚接触c++的小白。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-01
提问最好举例让别人易于理解问题关键,如:文件一行数据:1 2 3 4 5 6
读入数组后串联起来?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网