C++ 設定自定義資料型別
在本文中,我們將看到如何對使用者自定義資料型別建立集合。集合存在於 C++ STL 中。這是一種特殊型別的資料結構,它可以按排序順序儲存資料,並且不支援重複條目。我們可以為任何型別的資料使用集合,但本文重點介紹如何為使用者自定義資料型別使用集合。
要在堆疊中使用使用者自定義資料型別,我們必須重寫比較該型別兩個值的 < 運算子。如果沒有這個運算子,它將無法比較兩個物件,因此集合無法以排序順序儲存資料,從而將引發異常。
示例
#include <iostream> #include<set> using namespace std; class Student { int id, marks; public: Student(int id, int marks){ this->id = id; this->marks = marks; } bool operator <(const Student& st) const{ //sort using id, return (this->id < st.id); } void display() const{ cout << "(" << id << ", " << marks << ")\n"; } }; main() { Student s1(5, 70), s2(3, 86), s3(2, 91), s4(2, 60), s5(1, 78), s6(6, 53), s7(4, 59); //the set will not consider duplicate id set<Student> st_set; st_set.insert(s1); st_set.insert(s2); st_set.insert(s3); st_set.insert(s4); st_set.insert(s5); st_set.insert(s6); st_set.insert(s7); set<Student>::iterator it; for(it = st_set.begin(); it != st_set.end(); it++){ it->display(); } }
輸出
(1, 78) (2, 91) (3, 86) (4, 59) (5, 70) (6, 53)
廣告