这是什么有关问题
这是什么问题C/C++ codevectorstring * svecstring strwhile (cin str){svec.push_back(&str)}for
这是什么问题
C/C++ codevector<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的值而已
另外 楼主最好不要在容器里放指针 感觉挺危险 的