«
HackerRankやってるときによく2次元配列が出てくるので、ちゃちゃっとやりたいときのメモです
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
// 2次元配列の宣言,,,出来れば v じゃなくて用途名にしたいところ…
std::vector<vector<int>> v(2, vector<int>(3));
// こんな配列が出来てる↓↓↓
v.at(0).at(0);
v.at(0).at(1);
v.at(0).at(2);
v.at(1).at(0);
v.at(1).at(1);
v.at(1).at(2);
// 呼び先でも内容を更新したいときは参照が楽…
void func(vector<int> &t)
void func(vector<vector<int>> &v)
// べた書きループはかなり楽
for(unsigned int i = 0; i < v.size(); ++i){
for(unsigned int j = 0; j < v.at(i).size(); ++j){
// 何か処理
}
}
// べた書きループ、
// サイズチェックが気になる or 他でも利用するなるなら…
unsigned int row = v.size();
for(unsigned int i = 0; i < row; ++i){
auto &box = v.at(i);
unsigned int col = box.size();
for(unsigned int j = 0; j < col; ++j){
auto &ck_data = v.at(i).at(j);
// 何か処理
}
}
|
業務や後に残るコードではなく、とにかくちゃちゃっとやりたい、という要望って
自分はこれまで出会ったことが無かったので
この手のコーディングは、自分的にはかなり新しいというか新鮮な感じがします