|
■No91095 (しー さん) に返信 > このように宣言をし、 > vector <string> question_S; > vector <vector<int>> question_I(10, vector<int>(1,0)); > > 質問で記述したコードの前に次のような処理を入れるつもりです。 > > @ 標準入力したものをstring型変数に格納する。 > A @で受け取った文字列をgetline関数で区切る。 > B question_Sにpush_backでAで区切ったものを格納していく。 > C question_Iの要素数とメモリ確保量を、question_Sに合わせるために以下の処理をする。 >
データとしては
1,2,3 4,5,6 7,8,9
というような感じのデータを標準入力から受け取るということですかね?
CSVのパースと同じですが、vector<行データを表現するオブジェクト> という形を検討するのがいいと思いますよ。
絶対に整数値しか来ないなら、 std::vetor<std::vector<int>> question; で、保持するようにする形でいいと思いますし、 何が来るかわからないような場合は std::vector<std::vector<std::string>> question; としておけば無難だと思います。
部分的なコードだとこんな感じかな?(整数値のみという前提)
std::vetor<std::vector<int>> question; // 元の question_I に当たるもの。 std::string lineStr; while( std::getline( std::cin, lineStr ) ) { // ここで、lineStr を区切り文字で、切り出しながら、question に追加していく処理を書きます。 // C++ には、区切り文字で分解して配列にするみたいな便利なクラスはありません。 }
|