C++ 集合用于用户定义数据类型
c++server side programmingprogramming
在这里我们将看到如何为用户定义数据类型创建集合。集合存在于 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{ //使用 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)