读书人

这是什么有关问题

发布时间: 2012-04-05 12:42:39 作者: rapoo

这是什么问题

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的值而已

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

读书人网 >C++

热点推荐