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)

更新时间:30-Jul-2019

767 次浏览

启动您的 职业生涯

完成课程获得认证

开始
广告