用户定义数据类型的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);

   //该集合将不考虑重复的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)

以上是 用户定义数据类型的C ++集 的全部内容, 来源链接: utcz.com/z/348800.html

回到顶部