Үндсэн ялгаа – C хэл дээрх ерөнхий ба ерөнхий бус цуглуулга
Ерөнхий цуглуулга нь үндсэн цуглуулгын төрлөөс гарган авах, төрөлд хамаарах гишүүдийг хэрэгжүүлэх шаардлагагүйгээр төрлийн аюулгүй байдлыг хангадаг анги юм. Ерөнхий бус цуглуулга нь стек, дараалал, жагсаалт болон хэш хүснэгтүүдэд дэмжлэг үзүүлдэг өгөгдөл хадгалах, сэргээх тусгай анги юм. C хэл дээрх Ерөнхий болон Ерөнхий бус цуглуулгын хоорондох гол ялгаа нь Ерөнхий цуглуулгыг хүчтэй бичдэг бол Ерөнхий бус цуглуулгыг хүчтэй бичдэггүй.
C хэл дээрх ерөнхий цуглуулга гэж юу вэ?
ArrayList, Queue, Stack гэх мэт ерөнхий бус цуглуулгууд.янз бүрийн төрлийн өгөгдлийн элементүүдийг хадгалах боломжтой. Зүйлүүдийг олж авахдаа программист тэдгээрийг зөв өгөгдлийн төрөлд оруулах ёстой. Үгүй бол энэ нь ажиллах үеийн онцгой тохиолдол үүсгэж болно. Энэ асуудлыг даван туулахын тулд ерөнхий цуглуулгын ангиудыг ашиглаж болно. Ерөнхий цуглуулгууд нь элементүүдийг бодит төрлөөр нь массиваар дотооддоо хадгалдаг. Тиймээс төрөл цутгах шаардлагагүй. Тэдгээрийг заасан төрөл эсвэл төрлүүдийн элементүүдийг хадгалахад ашиглаж болно. Зарим ерөнхий цуглуулгын ангиуд нь Жагсаалт, Толь бичиг, SortedList, HashSet, Queue, Stack юм.
Ерөнхий Жагсаалт нь заасан төрлийн элементүүдийг агуулж байна. Энэ нь элементүүдийг нэмэх үед жагсаалтыг нэмэгдүүлэх боломжтой. Дараах мэдэгдэл байгаа тохиолдолд жагсаалт1-д хадгалж болох бүх элементүүд нь бүхэл тоо байх ёстой, Жагсаалтын жагсаалт1 – шинэ Жагсаалт ();
С хэл дээрх Ерөнхий толь бичиг нь түлхүүрүүд болон утгуудын цуглуулга юм. Дараах байдлаар мэдэгдэл байгаа тохиолдолд объектын толь бичиг1 int төрлийн түлхүүрүүд болон стринг төрлийн утгуудыг хадгалах боломжтой.
Толь толь бичиг1=шинэ толь бичиг ();
Ерөнхий SortedList цуглуулга нь түлхүүр болон утгын хосыг түлхүүрийн өсөх дарааллаар хадгалдаг. Доорх жишээнд int төрлийн түлхүүр болон мөрийн төрлийн утгыг хадгалдаг.
SortedList s0=шинэ эрэмбэлэгдсэн жагсаалт ();
Эдгээр нь C хэл дээрх Ерөнхий цуглуулгын цөөн хэдэн жишээ юм. Эдгээр цуглуулгууд нь заасан өгөгдлийн төрлүүдийн олон утгыг хадгалах боломжтой. Тиймээс тэдгээрийг маш сайн бичсэн байна.
C хэл дээрх ерөнхий бус цуглуулга гэж юу вэ?
Масивыг олон элемент хадгалахад ашиглаж болно. Нэг сул тал нь ижил төрлийн өгөгдлийн элементүүдийг хадгалах боломжтой юм. C хэл дээр цуглуулга гэж нэрлэгддэг олон утга эсвэл объектыг хадгалахад ашиглаж болох ангиуд байдаг. Цуглуулга нь объектуудыг хадгалах, шинэчлэх, устгах, хайх, эрэмбэлэх зэрэгт тусалдаг. Цуглуулгын хэмжээг динамикаар нэмэгдүүлэх эсвэл багасгах боломжтой.
Ерөнхий бус цуглуулгын зарим ангиуд нь ArrayList, SortedList, Stack, Queue болон HashTable юм. Цуглуулгын анги бүр IEnumerable интерфейсийг хэрэгжүүлдэг. Энэ нь foreach гогцоо ашиглан цуглуулгад байгаа зүйлсийн элементүүдийг давтахад тусалдаг.
ArrayList нь массивын өөр хувилбар юм. Хэрэв 10 элемент хадгалах массив байгаа бол 20 элемент хадгалах боломжгүй. Хэрэв массивыг 10 элемент болгон эхлүүлсэн боловч зөвхөн 5 элемент хадгалдаг бол үлдсэн хэсэг нь ашиглагдаагүй болно. Тиймээс массив тогтмол байна. ArrayList-д индексээс хамаарч элемент нэмэх, хасах боломжтой. Энэ нь санах ойн динамик хуваарилалтыг зөвшөөрдөг. Элементүүдийг өсөх дарааллаар эрэмбэлэхийн тулд эрэмбэлэх аргыг ашиглаж болно.
Хэш хүснэгтийг хос утгын цуглуулгыг илэрхийлэхэд ашигладаг. Тэдгээрийг түлхүүрийн hashCode дээр үндэслэн зохион байгуулдаг. Тиймээс элемент бүр түлхүүр утгын хостой байдаг. Түлхүүрийг цуглуулгын тодорхой элементэд хандахад ашиглаж болно. Стек нь зүйлсэд хамгийн сүүлд орж, хамгийн түрүүнд гарах хандалтыг илэрхийлдэг. Дараалал нь зүйлд хамгийн түрүүнд хандахад ашиглагддаг. Эдгээр нь C-ээр дэмжигдсэн ерөнхий бус цуглуулгуудын зарим нь юм. Эдгээр цуглуулгууд нь өөр өөр төрлийн элементүүдийг хадгалах боломжтой.
С хэл дээрх ерөнхий болон ерөнхий бус цуглуулгын хооронд ямар төстэй зүйл байдаг вэ?
Ерөнхий болон ерөнхий бус цуглуулгыг C хэл дээр олон элемент хадгалахад ашиглаж болно
C хэл дээрх ерөнхий болон ерөнхий бус цуглуулга хоёрын ялгаа юу вэ?
C хэл дээрх ерөнхий ба ерөнхий бус цуглуулга |
|
Ерөнхий цуглуулга нь үндсэн цуглуулгын төрлөөс гаргаж авах шаардлагагүй, төрөлд хамаарах гишүүдийг хэрэгжүүлэхгүйгээр төрлийн аюулгүй байдлыг хангадаг анги юм. | Ерөнхий бус цуглуулга нь стек, дараалал, жагсаалт болон хэш хүснэгтэд дэмжлэг үзүүлдэг өгөгдөл хадгалах, сэргээх тусгай анги юм. |
Нэрийн зай | |
Ерөнхий цуглуулгын ангиуд системд байна. Цуглуулга. Ерөнхий нэрийн орон зай. | Ерөнхий бус цуглуулгын ангиуд системд байна. Цуглуулгын нэрийн зай. |
Төрөл | |
Ерөнхий цуглуулгыг маш сайн бичсэн байна. | Ерөнхий бус цуглуулгыг хатуу бичээгүй байна. |
Элемент хадгалах | |
Ерөнхий цуглуулга нь элементүүдийг бодит төрлөөр нь массив болгон дотооддоо хадгалдаг. | Ерөнхий бус цуглуулгууд нь элементүүдийг объектын массив дотор хадгалдаг тул ямар ч төрлийн өгөгдлийг хадгалах боломжтой. |
Хураангуй – C хэл дээрх ерөнхий ба ерөнхий бус цуглуулга
Энэ нийтлэлд C хэл дээрх ерөнхий болон ерөнхий бус цуглуулгын ялгааг авч үзсэн. Ерөнхий болон Ерөнхий бус цуглуулгын ялгаа нь Ерөнхий цуглуулгыг хүчтэй бичдэг бол ерөнхий бус цуглуулгыг хүчтэй бичдэггүй.