見出し画像

配列の範囲のプログラミング

 1月から12月までの月や47都道府県のデータを配列で扱う場合、それぞれの数は、あらかじめ決まっているので、範囲を超えることはありません。一方で、自分の持っている音楽データの曲名のデータベースを配列で表そうとすると、アーティストの数、各アーティストのアルバムの数、各アルバムの曲の数などは決まっていませんし、今後増えるかも知れません。まあ、アーティストの数は個人で利用する限り10,000は超えないでしょうし、それぞれのアーティストのアルバム数も1,000枚くらいで十分でしょう。音楽CDの規格ではアルバムの曲の数の上限は99です。
 私は小学生のころ、競技かるたの練習をしていたことがありますが、百人一首のCDをランダム再生すれば、読み手がいなくても練習できるわけです。100枚目は読まなくていいのですが、ちょっと困りますよね。実は2首の歌が、ひとつのトラック(曲)に収録されているそうです。最近は、レコードどころかCDも実物を見たことない人や、そもそも知らない人も多いみたいですね。
 アーティストとそれぞれのアルバムの数を余裕を持って最大の値にして、アーティスト、アルバム、曲の三次元配列を、

CString music_title[10000][1000][99];

とすることもできます。でも無駄が多いかもしれませんよね。さらに、しばらくするとこの上限を忘れていて、知らずに越えてしまってバグを発生させることもあります。バグは過去の自分と今の自分が共同で作っているのです。
 最近では、初めから範囲を確保するのではなくて、使うたびに広げていくスタイルや、配列のサイズを気にしなくてよいプログラミング言語もあります。

4. 百人一首


この記事が気に入ったらサポートをしてみませんか?