今回はGridの値の配列化
使った指示
Grid->GetNumberRows(); //Class Gridの列数を取得**列とあるが、エクセル表記では行、縦を意味する
Grid->GetNumberCols(); //Class Gridの行数を取得**行とあるが、エクセル表記では列、横を意味する
wxTextCtrl->SetValue(); //Class wxTextCtrlに値を代入する
wxTextCtrl->GetValue(); //Class wxTextCtrlの値を取得する
やりたいこと
二次元配列の列1を参照し、列2の値を検証したい
検証
1 列1がAである場合に、列2の値(数字)を保存する。
2 保存した列2の値を昇順にソートする。(ソート関数があるのでvectorに配列を保存しそれを使用)
3 int X=1とソートした数字を比較、Xが存在すれば
X++
Xが存在しなければXを返す(return x ;)
上記検証を関数にしたが、次回の記事にする。
解決方法1
Test1にGridの値をfor文で回して読み込ませる。
//行C 列R
//グリッドの行列最大サイズを取得(エクセル表示に合わせて、意図して行列の表示入れ替えてる)
int csvCol = Grid->GetNumberRows();
int csvRow = Grid->GetNumberCols();
//Test1にFor分回してGrid内のセルを保存
//2次元配列[][]の作成
std::vector<std::vector<std::string >> Test1;
//1次元配列[]の作成
std::vector<std::string> Test1_column;
//1セル毎の文字列入力変数の作成
std::string Column_Str;
for (int C=0;C<csvColfR2;C++) {
for (int R=0;R<csvRowfR2;R++) {
//C行R列の値を取得し、毎回プッシュバックしている
Column_Str = Grid->GetCellValue(C, R);
Test1_column.push_back(Column_Str);
}
//必ずここではstd::moveを使うこと!意味は、代入後に値を破棄しますよということ
Test1.push_back(std::move(Test1_column));
}
以上
今回は「Gridの値の配列化」を書き留めました。
Comments