//struct
#include <vector>
#include <iostream>
using namespace std;
struct person{
string name; // name нь нэрийн утгыг авах учир тэмдэгт мөр
string sex; // sex нь хүйсийн утгыг авах учир тэмдэгт мөр
int age; // age нь насны утгыг авах болхоор тоо
} shiree, lol; // эдгээр нь глобал хувьсагчид болон зарлагдаж байна.
void pr( person x ) {
// энэ функц нь нэг person төрлийн хувьсагч авах ба түүнийг хэвлэнэ:
cout << "NAME:" << x.name << endl; // нэрийг хэвлэх
cout << "SEX:" << x.sex << endl; // хүисийг хэвлэх
cout << "AGE:" << x.age << endl; // насыг хэвлэх
cout << endl;
return;
}
int main() {
/*Дийлдэшгүй залхуу юм байна. Энэ удаад struct-ын талаар бичих болно.
Struct гэж юу вэ? Хэсэг зүйлсийг нэгтгэж нэг бүлэг болгон ашигладаг
бүтэц юм. Өмнө нь pair-ын талаар үзсэн. Энэ нь хос болгож авж байсан.
Харин бид маш олон зүйлсийг pair ашиглан бичихэд бага зэрэг асуудалтай
учрах юм. Өөрөөр хэлбэл олон ширхэг зүйлсийг хос болгосон гэж үзэхэд
хандахын тулд a.first.first.first гэх жишэээний. Мөн аль байрлалдах нь
ямар утгыг агуулж байгаа билээ гэх мэт бодох асуудал ихтэй. Struct нь бүлэг
үүсгэхдээ бүлгийн гишүүн бүрийн авах төрөл мөн нэрийг нь бичэж өгдгөөрөө
давуу талтай юм. Жишээ нь бид Person гэсэн бүтэц үүсгэсэн гэж бодъё.
Тэгвэл энэ бүлэгт name, age, sex байж болох юм. Сониноос тэр цэг таслалыг мартваа.
};*/
shiree.age = 12; // shiree гэсэн нэртэй хувьсагчийн age
//гэсэн гишүүнд 12 гэсэн утга оноох
shiree.sex = "Eregtei"; // shiree гэсэн нэртэй хувьсагчийн sex гэсэн
// гишүүнд Eregtei гэсэн утга оноох
shiree.name = "sandal"; // shiree гэсэн нэртэй хувьсагчийн name гэсэн
// гишүүнд sandal гэсэн утга оноох
pr( shiree ); // shiree гэсэн хувьсагчийн утгуудыг хэвлэх.
person a; // person төрлийн a гэсэн хувьсагч зарлаж байна.
a.age = 0;
a.name = "Nergui";
a.sex = "Saarmag";
pr( a );
cin >> a.name >> a.sex >> a.age; // name, sex, age үүдийг унших.
vector<person> v; // person төрлийн хувьсагч агуулах vector
v.push_back( a );
pr( v[0] );
return 0;
}