Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

사용자 정의 데이터 유형을 위한 C++ 세트

<시간/>

여기서 우리는 사용자 정의 데이터 유형에 대한 집합을 만드는 방법을 볼 것입니다. 세트는 C++ STL에 있습니다. 이것은 데이터 구조의 특수한 유형으로 데이터를 정렬된 순서로 저장할 수 있으며 중복 입력을 지원하지 않습니다. 모든 유형의 데이터에 대해 set을 사용할 수 있지만 여기서는 사용자 정의 데이터 유형에도 set을 사용하는 방법을 살펴보겠습니다.

사용자 정의 데이터 유형을 스택에 사용하려면 해당 유형의 두 값을 비교할 수 있는 <연산자를 재정의해야 합니다. 이것이 없으면 두 개체를 비교할 수 없으므로 집합이 데이터를 정렬된 순서로 저장할 수 없으므로 예외가 발생합니다.

예시

#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)