top of page

C++ wxwidgets グリッドの値を配列化したい

執筆者の写真: bosi sirobosi siro

今回は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の値の配列化」を書き留めました。





閲覧数:0回0件のコメント

最新記事

すべて表示

C++ SFML マップのスクロール

本日は時間が無い為、突貫工事になる マップのスクロール機能を実装 以下が、追加分になる // プレイヤーを中心にスクロールするビューを作成 sf::View view(sf::FloatRect(0, 0, 800, 600));...

C++ SFML ゲーム キャラクターの移動等

今回のコード: //ベースマップの二次元配列を読み込む***省略 // キャラクターの2次元配列を定義 (0: なし、1: 敵、2: 操作可能キャラクター) std::vector<std::vector<std::string>> characterArray =...

Comments


bottom of page