Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ความแตกต่างระหว่าง Set และ MultiSet ใน C++


ใน C ++ ทั้ง Set และ MultiSet เป็นประเภทของโครงสร้างข้อมูลที่ใช้ในการจัดเก็บข้อมูลเพื่อให้เข้าถึงและแทรกได้ง่าย บนพื้นฐานของลักษณะของโครงสร้างข้อมูลทั้งสองนี้ เราสามารถแยกความแตกต่างระหว่าง Set และ MultiSet

ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่าง Set และ MultiSet -

ซีเนียร์ เลขที่ คีย์ ตั้งค่า MultiSet
1 คำจำกัดความ การตั้งค่าในภาษา C++ สามารถกำหนดเป็นประเภทของคอนเทนเนอร์ที่เชื่อมโยงซึ่งจัดเก็บข้อมูลในคู่ของค่าคีย์และองค์ประกอบค่าแต่ละรายการจะต้องไม่ซ้ำกัน เนื่องจากค่าขององค์ประกอบจะระบุข้อมูลดังกล่าว ในทางกลับกัน MultiSet เป็นส่วนหนึ่งของ C++ STL (ไลบรารีเทมเพลตมาตรฐาน) และถูกกำหนดให้เป็นคอนเทนเนอร์ที่เชื่อมโยงเช่น Set ที่เก็บคู่ของค่าคีย์ที่จัดเรียง แต่ต่างจาก Set ซึ่งเก็บเฉพาะคีย์ที่ไม่ซ้ำกัน MultiSet สามารถมีคีย์ที่ซ้ำกันได้
2 การเรียงลำดับ กรณี Set ข้อมูลจะถูกจัดเรียงตามลำดับ ในกรณีของ MultiSet ข้อมูลจะถูกจัดเก็บตามลำดับการจัดเรียง
3 ค่าที่ซ้ำกัน ในการตั้งค่าซ้ำกันไม่ได้รับอนุญาตให้ได้รับการจัดเก็บ ในทางกลับกัน ในกรณีของ MultiSet เราสามารถเก็บค่าที่ซ้ำกันได้
4 การจัดการ ในกรณีของ Set เราไม่สามารถเปลี่ยนค่าได้เมื่อถูกแทรก แต่เราสามารถลบหรือแทรกอีกครั้งได้ อย่างไรก็ตาม ในกรณีของ MultiSet เราไม่สามารถเปลี่ยนค่าได้เมื่อใส่เข้าไปแล้ว

ตัวอย่าง

ตั้งค่า

#include
#include
using namespace std;
main() {
   int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41};
   set my_set;
   for(int i = 0; i<15; i++) { my_set.insert(data[i]);
   }
   set::iterator it;
   for(it = my_set.begin(); it != my_set.end(); it++) {
      cout << "Item: " << *it << endl;
   }
}

ผลลัพธ์

Item: 11
Item: 22
Item: 23
Item: 33
Item: 41
Item: 44
Item: 55
Item: 66
Item: 77
Item: 88
Item: 99

ตัวอย่าง

มัลติเซ็ต

#include
#include
using namespace std;
main() {
   int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41};
   multiset my_set;
   for(int i = 0; i<15; i++) { my_set.insert(data[i]);
   }
   multiset::iterator it;
   for(it = my_set.begin(); it != my_set.end(); it++) {
      cout << "Item: " << *it << endl;
   }
}

ผลลัพธ์

Item: 11
Item: 11
Item: 22
Item: 22
Item: 23
Item: 33
Item: 41
Item: 44
Item: 55
Item: 66
Item: 66
Item: 66
Item: 77
Item: 88
Item: 99