そこで、夏にArrayListの実装を作成し、toStringメソッドを使用して、ostringstreamオブジェクトを使用して文字列をタックし、出力します。
方法は次のとおりです。
template<class T>
std::string ArrayList<T>::toString() {
std::ostringstream streamOut;
streamOut << "(";
for (int i = 0; i < size; i++) {
streamOut << array[i];
if (i != (size - 1)) {
streamOut << ", ";
}
}
streamOut << ")\n";
std::string returnString = streamOut.str();
return returnString;
}
問題は、このプログラムを実行すると、上記のメソッドの行でクラッシュすることがあることです。
streamOut << "(";
最後にflushステートメントを追加しようとしましたが、うまくいきませんでした...ここで何が間違っているのか本当にわかりません。
この問題は関連していると思いますが、確信が持てません。
https://stackoverflow.com/questions/8250851/big-ostringstream-causes-application-crash
編集:
私は開発にEclipseを使用していることを忘れてしまいました。また、Eclipseで実行したときに、プログラムのクラッシュが発生することはありませんでした。クラッシュするのは、Windowsまたはコマンドラインから生成されたexeを実行したときだけです。