構造体型の配列の簡単な初期化法と格納した数値データを効率よくcout出力表示する方法について考察してみます   

てんC

「構造体型の配列宣言を行い


複数(今の場合2つ)の構造体変数のメンバ変数に


格納されている数値データを

構造体型の配列に格納することができました。」



ソーラー 「やった、てんC


ようやく理解できた。


さきほどのエピソードタイトル



格納した数値データを効率よくprintf表示する 

構造体型の配列宣言を行い 構造体の配列を作製して

複数の構造体変数のメンバ変数に格納された数値を

構造体型の配列に格納する方法




意味fm明だったから あせったよ



てんC「ソーラーさん、まだまだこれからです。(*´▽`*)



先程のプログラム⇩は


#include <iostream>


using namespace std;


typedef struct Cube{

int no;

float tate;

float yoko;

float takasa;

}Cube;


int main()

{


Cube str[2];


str[0].no=1;

str[0].tate=2.0;

str[0].yoko=3.0;

str[0].takasa=4.0;

str[1].no=2;

str[1].tate=4.0;

str[1].yoko=5.0;

str[1].takasa=6.0;


cout<<str[0].no<<"\n";

cout<<str[0].tate<<"\n";

cout<<str[0].yoko<<"\n";

cout<<str[0].takasa<<"\n";

cout<<str[1].no<<"\n";

cout<<str[1].tate<<"\n";

cout<<str[1].yoko<<"\n";

cout<<str[1].takasa<<"\n";


return 0;

}


ビルド実行結果

1

2

3

4

2

4

5

6




           🍊for文を用いて🍊


以下のプログラムのように


#include <iostream>


using namespace std;


typedef struct Cube {

int no;

float tate;

float yoko;

float takasa;

}Cube;


int main()

{


Cube str[2];


str[0].no = 1;

str[0].tate = 2.0;

str[0].yoko = 3.0;

str[0].takasa = 4.0;

str[1].no = 2;

str[1].tate = 4.0;

str[1].yoko = 5.0;

str[1].takasa = 6.0;


int i;

for (i = 0; i<2; i++) {

cout<<str[i].no<<"\n";

cout<<str[i].tate<<"\n";

cout<<str[i].yoko<<"\n";

cout<<str[i].takasa<<"\n";

/*ここの部分ですね

for文を用いてcout出力表示の命令文の簡略化に成功しました。*/

}

return 0;

}


ビルド実行結果

1

2

3

4

2

4

5

6



  🍓cout出力表示の命令文を簡略化することができました 🍓


ソーラー「


str[0].no=1;

str[0].tate=2.0;

str[0].yoko=3.0;

str[0].takasa=4.0;

str[1].no=2;

str[1].tate=4.0;

str[1].yoko=5.0;

str[1].takasa=6.0;


この部分は簡略化できないかな?」


てんC「確かに


str[0].no=1;

str[0].tate=2.0;

str[0].yoko=3.0;

str[0].takasa=4.0;

str[1].no=2;

str[1].tate=4.0;

str[1].yoko=5.0;

str[1].takasa=6.0;


のように

立方体cube1の数値データ

NO 1

縦 2.0

横 3.0

高さ 4.0


立方体cube2の数値データ

NO 2

縦 4.0

横 5.0

高さ 6.0



を格納していくのは

手間ですね


そうなんです。簡略化表記する方法はあるのです。


Cube str[2];


str[0].no=1;

str[0].tate=2.0;

str[0].yoko=3.0;

str[0].takasa=4.0;

str[1].no=2;

str[1].tate=4.0;

str[1].yoko=5.0;

str[1].takasa=6.0;


の部分を


簡略化して


Cube str[2]={{1,2.0,3.0,4.0},{2,4.0,5.0,6.0}};

と表記することができます。


このように表記した場合でも


Cube str[2]により


生成される

配列変数

str[0].no

str[0].tate

str[0].yoko

str[0].takasa

str[1].no

str[1].tate

str[1].yoko

str[1].takasa


に数値データを格納することができます。

                

そして


{{1,2.0,3.0,4.0},{2,4.0,5.0,6.0}}

の中の


{1,2.0,3.0,4.0}

1

2.0

3.0

4.0

str[0]のメンバ変数


str[0].no

str[0].tate

str[0].yoko

str[0].takasa


に格納され


{2,4.0,5.0,6.0}

2

4.0

5.0

6.0


str[1]のメンバ変数

str[1].no

str[1].tate

str[1].yoko

str[1].takasa

に格納されます。


さらに


構造体Cube型の配列


Cube str[2]の[]のなかの要素数2は省略して


Cube str[]={{1,2.0,3.0,4.0},{2,4.0,5.0,6.0}};


と表記することができます。

{{1,2.0,3.0,4.0},{2,4.0,5.0,6.0}}のなかの

{1,2.0,3.0,4.0}👈1

{2,4.0,5.0,6.0}👈2

の数にあわせて

str[]の要素数は2と設定されます。


この表記法をもちいてプログラムをシンプルに書き換えると


#include <iostream>


using namespace std;


typedef struct Cube {

int no;

float tate;

float yoko;

float takasa;

}Cube;


int main()

{


Cube str[] = { { 1,2.0,3.0,4.0 },{ 2,4.0,5.0,6.0 } };


int i;

for (i = 0; i<2; i++) {

cout<<str[i].no<<"\n";

cout<<str[i].tate<<"\n";

cout<<str[i].yoko<<"\n";

cout<<str[i].takasa<<"\n";

/*ここの部分ですね

for文を用いてprintf表示の命令文の簡略化に成功しました。*/


}

return 0;

}


ビルド実行結果

1

2

3

4

2

4

5

6


ソーラー 「めっちゃ😺、プログラムが短くなった。」


てんC「そうですね。


この構造体型の配列に数値データを格納する方法は


大変重宝するとおもわれますの。


では


再びfor文の部分にもどります。


格納した全てのデータを

int i;

for (i = 0; i<2; i++) {

cout<<str[i].no<<"\n";

cout<<str[i].tate<<"\n";

cout<<str[i].yoko<<"\n";

cout<<str[i].takasa<<"\n";

}

この7行で表示できるのは


大変効率がよいのです。


立方体が


cube1

cube2

cube3

.

.

.

.

.

cube1000000


と1000000個あっても

全ての立方体の

NO

高さ

データを表示するのに


次の命令文 

int i;

for(i=0;i<100000;i++){

cout<<str[i].no<<"\n";

cout<<str[i].tate<<"\n";

cout<<str[i].yoko<<"\n";

cout<<str[i].takasa<<"\n";

}

7行で済んでしまうのです。



          🍒このように


     🍓簡単に多種類の整数値や実数値データをメモリに格納し🍓


    🍊簡単に格納された数値データをcout表示できる🍊


これこそが さきのエピソードでものべましたように


(*´▽`*)😊(*´▽`*)😊(*´▽`*)😊(*´▽`*)😊(*´▽`*)😊

構造体型の配列宣言を行い

構造体の配列を作製して

複数の構造体変数のメンバ変数に格納された数値データを

構造体型の配列に格納する  

(*´▽`*)😊(*´▽`*)😊(*´▽`*)😊(*´▽`*)😊(*´▽`*)😊


理由なのです。🍒



構造体の配列をつかえば


コンピュータに格納された


市の 'すべての住人' の生年月日などの数値データも


わずかな命令文ですべて表示することができます。」


  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る