2018年02月14日
《その292》 ベクトルによる2次元配列(2)
ベクトルによる2次元配列
( 各行の列数が等しいとは限らない2次元配列 )
◇下記のプログラムで、
vector<int> a の要素は { 00, 01, 02, 03, 04 }
vector<int> b の要素は { 10, 11, 12 }
vector<int> c の要素は { 20, 21, 22, 23, 24, 25 }
vector<int> d の要素は { 30, 31, 32, 33, 34, 35, 36, 37 }
です。
vector<vector<int> > arr;
を用意して、
arr.push_back(a);
arr.push_back(b);
arr.push_back(c);
arr.push_back(d);
として、各行の列数が一定ではない配列を作成します。
arr の全ての要素を for文で出力していますが、その際の
行のインデックスは、
(unsigned i = 0; i < arr.size(); i++)
各列のインデックスは、
(unsigned j = 0; j < arr[i].size(); j++)
で、うまくいきます。
以下はプログラムです。修正(2018/02/16)無駄なコードを消しました m(_ _)m
#include <iomanip>
#include <vector>
#include <iostream>
using namespace std;
int main() {
vector<int> a{ 00, 01, 02, 03, 04 };
vector<int> b{ 10, 11, 12 };
vector<int> c{ 20, 21, 22, 23, 24, 25 };
vector<int> d{ 30, 31, 32, 33, 34, 35, 36, 37 };
vector<vector<int> > arr;
arr.push_back(a);
arr.push_back(b);
arr.push_back(c);
arr.push_back(d);
for (unsigned i = 0; i < arr.size(); i++) {
for (unsigned j = 0; j < arr[i].size(); j++)
cout << setfill('0') << setw(2)
<< arr[i][j] << ' ';
cout << '\n';
}
}
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7318019
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック