私は C++ を学んでいて、本に質問があります。
Q: 文字列へのポインターのベクトルを定義するプログラムを作成してください。ベクトルを読み取り、各文字列とそれに対応するサイズを出力します。
コード:
vector<string*> v;
string str;
cout<<"Enter your string:"<<endl;
while(cin >> str) // input
{
string *ps=&str;
v.push_back(ps);
}
vector<string*>::iterator iter=v.begin();
while( iter!=v.end()) // output
cout<< **iter++<<" "<<(**iter).size()<<endl;
「a sd fgh」と入力すると、出力は「a 1; sd 2; fgh 3」になると思います。しかし、出力は「fgh 3; fgh 3; fgh 3」です。誰がどこが間違っているのか知っていますか?