首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这是什么有关问题

2012-04-05 
这是什么问题C/C++ codevectorstring * svecstring strwhile (cin str){svec.push_back(&str)}for

这是什么问题

C/C++ code
vector<string *> svec;    string str;    while (cin >> str)    {        svec.push_back(&str);    }    for(vector<string*>::iterator iter = svec.begin(); iter != svec.end(); ++iter)    {        cout << **iter << "   " << (**iter).size() << endl;    }


输出的时候字符串是空的,且长度都是0

[解决办法]
你每次push_back的都是同一个str的地址,而str在cin >> str失败时被清空了
[解决办法]
一楼有理 你svec里面的元素都 是指向的同一个str 每次cin>>str 都 只不过改的是str的值而已

另外 楼主最好不要在容器里放指针 感觉挺危险 的

热点排行