#構造体ってなんであるの?
##配列の役割とは?
配列は一つの型の複数の変数を管理することができる。
つまり、同じ型である必要がある!
##構造体は配列の上位互換
構造体は複数の型の複数の変数を管理することができる。
つまり、制限がない!
###ただのメンバ変数を関する構造体
#include <bits/stdc++.h>
using namespace std;
struct stu{//stu型に統一する stuは構造体名
string name;
int id,age;
string e_mail;
double GPA;
}S;//Sにメンバ変数を入れる Sは構造体変数名
int main(){
cin >> S.name >> S.id >> S.age >> S.e_mail >> S.GPA;
}
}
###配列化したメンバ変数を管理した構造体
#include <bits/stdc++.h>
using namespace std;
struct stu{//stu型に統一する stuは構造体名
string name;
int id,age;
string e_mail;
double GPA;
}S[100];//S配列にメンバ変数を入れる Sは構造体変数名
int main(){
for (int i=0; i<3; i++){
cin >> S[i].name >> S[i].id >> S[i].age >> S[i].e_mail >> S[i].GPA;
}
}
###配列化したメンバ変数&関数を用いた構造体
#include <bits/stdc++.h>
using namespace std;
struct stu{//stu型に統一する stuは構造体名
string name;
int id,age;
string e_mail;
double GPA;
}S[100];//S配列にメンバ変数を入れる Sは構造体変数名
void printStudent(stu A){
cout << A.id << " " << A.GPA << endl;
}
int main(){
int n;cin >> n;
for (int i=0; i<n; i++){
cin >> S[i].name >> S[i].id >> S[i].age >> S[i].e_mail >> S[i].GPA;
}
for (int i=0; i<n; i++) printStudent(S[i]);
}
メンバ変数にアクセスするには、構造体変数名.メンバ変数という書き方でアクセスできる!
#構造体とクラスの違いは?
class はデフォルトのアクセシビリティが private
struct はデフォルトのアクセシビリティが public
https://qiita.com/pink_bangbi/items/e25302df7f4ba7fa0db4
#まとめ
2つ覚えるの無理だから構造体だけ覚えるわ