Pair-н тухай.
Юу ч хийхгүй байсан тул шинэ юм оруулахаар шийджээ. Pair гэж юу вэ? Энэ нь шууд утгаараа буюу 2 зүйлийг нийлүүлж хос болгодог гэсэн үг. Өөрөөр хэлбэл int a; гэсэн тохиолдолд зөвхөн 1 л бүхэл тоо авна. Харин pair<int,int> a; гэсэн тохиолдолд a гэсэн хувьсагч нь 2 тоо зэрэг авж чадна гэсэн үг юм. Үүнийг int a[2]; гэхэд болох ч энэ 2 нь тус тусдаа буюу a[0], a[1] гэсэн 2 өөр хувьсагчууд юм. Харин pair бол энэ 2 нь салахгүй үргэлж хамтдаа явна гэсэн үг. Харин энэ хосын эхний байрлалдах утгад хандахыг хүсвэл a.first, 2 дахь бол a.second гэхэд л болно. pair нь бичсэнчлэн хос болгодог гэсэн тул pair<pair<int,int>, int> > a; гэж болох ба энэ нь 3 ширхэг тоо авах ба хандахдаа a.first.first, a.first.second, a.second гэнэ. pair<төрөл, төрөл> гэсэн бүтэцтэй. Доорхи код энэ хаягдээр байгаа.
Юу ч хийхгүй байсан тул шинэ юм оруулахаар шийджээ. Pair гэж юу вэ? Энэ нь шууд утгаараа буюу 2 зүйлийг нийлүүлж хос болгодог гэсэн үг. Өөрөөр хэлбэл int a; гэсэн тохиолдолд зөвхөн 1 л бүхэл тоо авна. Харин pair<int,int> a; гэсэн тохиолдолд a гэсэн хувьсагч нь 2 тоо зэрэг авж чадна гэсэн үг юм. Үүнийг int a[2]; гэхэд болох ч энэ 2 нь тус тусдаа буюу a[0], a[1] гэсэн 2 өөр хувьсагчууд юм. Харин pair бол энэ 2 нь салахгүй үргэлж хамтдаа явна гэсэн үг. Харин энэ хосын эхний байрлалдах утгад хандахыг хүсвэл a.first, 2 дахь бол a.second гэхэд л болно. pair нь бичсэнчлэн хос болгодог гэсэн тул pair<pair<int,int>, int> > a; гэж болох ба энэ нь 3 ширхэг тоо авах ба хандахдаа a.first.first, a.first.second, a.second гэнэ. pair<төрөл, төрөл> гэсэн бүтэцтэй. Доорхи код энэ хаягдээр байгаа.
- // pair
- #include <vector>
- #include <iostream>
- using namespace std;
- int main() {
- /* Pair гэж юу вэ? Энэ нь шууд утгаараа буюу 2 зүйлийг нийлүүлж хос
- болгодог гэсэн үг. Өөрөөр хэлбэл int a; гэсэн тохиолдолд зөвхөн
- 1 л бүхэл тоо авна. Харин pair<int,int> a; гэсэн тохиолдолд a гэсэн
- хувьсагч нь 2 тоо зэрэг авж чадна гэсэн үг юм. Үүнийг int a[2];
- гэхэд болох ч энэ 2 нь тус тусдаа буюу a[0], a[1] гэсэн 2 өөр
- хувьсагчууд юм. Харин pair бол энэ 2 нь салахгүй үргэлж хамтдаа
- явна гэсэн үг. Харин энэ хосын эхний байрлалдах утгад хандахыг
- хүсвэл a.first, 2 дахь бол a.second гэхэд л болно. pair нь бичсэнчлэн
- хос болгодог гэсэн тул pair< pair<int,int>, int> > a; гэж болох ба
- энэ нь 3 ширхэг тоо авах ба хандахдаа a.first.first, a.first.second,
- a.second гэнэ. pair<төрөл, төрөл> гэсэн бүтэцтэй.
- */
- pair<int,int> a; // a нь 2 int агуулах нэг хувьсагч юм.
- a.first = 24; // a хувьсагчийн эхнийхэд нь 24 гэсэн утга оноож байна.
- a.second = 7; // a хувьсагчийн хоёрдахь нь 7 гэсэн утга оноож байна.
- cout << a.first << " " << a.second << endl; // хэвлэх
- vector< pair<int,int> > v; // vector-ын элемэнт бүр нь 2 тоо агуулдаг гэсэн утгатай.
- v.push_back( make_pair( 14, 3 ) ); // 14, 3 гэсэн 2 тоог нийлүүлээд хос болгоод үүнийгээ
- // v гэсэн vector-т нэмж байна.
- cout << v[0].first << " " << v[0].second << endl; // хэвлэх.
- pair<int, string> b; // int, string гэсэн 2 төрлийu хос болгож байна.
- b.first = 13; // эхнийхэд нь 13 гэсэн утга оноож байна.
- b.second = "Reasons Why"; // хоёрдахьд нь Reasons Why гэсэн утгыг оноож байна.
- cout << b.first << " " << b.second << endl; // хэвлэх.
- pair < string, pair<string, string> > c; // string, int, int гэсэн 3-ыг хос болгож байна.
- c.first = "Oilgomjtoi"; // эхнийхэд нь Oilgomjtoi гэсэн утга оноож байна.
- c.second.first = "Baigaa"; // хоёрдахьд нь Baigaa гэсэн утга оноож байна.
- c.second.second = "Biz"; // гуравдахьд нь Biz гэсэн утга оноож байна.
- cout << c.first << " " << c.second.first << " " << c.second.second << endl;
- return 0;
- }
Comments
Post a Comment