0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

構造体ってなんだよ

Posted at

#構造体ってなんであるの?
##配列の役割とは?
配列一つの型の複数の変数を管理することができる。
つまり、同じ型である必要がある!

##構造体は配列の上位互換
構造体複数の型の複数の変数を管理することができる。
つまり、制限がない!
###ただのメンバ変数を関する構造体


#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つ覚えるの無理だから構造体だけ覚えるわ

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?