for ループはベクトルを反復処理し、すべての文字列をコンソールに正常に表示します。
int main(int argc, const char * argv[])
{
vector<string>stringVector;
string newStringEntry;
cin>>newStringEntry;
stringVector.push_back(newStringEntry);
cin>>newStringEntry;
stringVector.push_back(newStringEntry);
for (vector<string>::iterator i = stringVector.begin(); i != stringVector.end(); ++i)
{
cout<<*i<<endl;
}
}
しかし、これはコードを読みにくくします (私たちの先生は言いました) for ループ用のクラスを構築する必要があり、メインは変更後に次のようになります。
int main(int argc, const char * argv[])
{
vector<string>stringVector;
string newStringEntry;
cin>>newStringEntry;
stringVector.push_back(newStringEntry);
cin>>newStringEntry;
stringVector.push_back(newStringEntry);
showStrings();
}
私が見る問題は、メインで宣言するベクトル名がクラスで認識されていないため、for ループを独自のクラスにコピーして貼り付けることができないため、エラーが発生することです。
どうすればこれを機能させることができますか?
これまでの私のクラスは次のようになります。
class VectorHelp {
void showStrings() const
{
for (vector<string>::iterator i = vectorName.begin();
i != vectorName.end();
++i)
{
cout << *i << endl;
}
}
};