大爱C++——set容器

    xiaoxiao2021-03-26  35

    set容器简介:

    ² set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列元素插入过程是按排序规则插入,所以不能指定插入位置。

    ² set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。

    ² set不可以直接存取元素。(不可以使用at.(pos)[]操作符)。

    ² multisetset的区别:set支持唯一键值,每个元素值只能出现一次;而multiset同一值可以出现多次

    ² 不可以直接修改setmultiset容器中的元素值,因为该类容器是自动排序的。如果希望修改一个元素值,必须先删除原有的元素,再插入新的元素。

    ² 头文件:#include <set>  

    测试代码: #include <iostream> using namespace std; #include "set" class Student { public: Student(char* name,int age) { strcpy(this->name,name); this->age = age; } public: char name[64]; int age; }; //仿函数 struct Function { bool operator()(const Student& left,const Student& right) { if (left.age <right.age) { return true; } else { return false; } } }; int main() { set<Student, Function> s; Student s1("小白",20); Student s2("小红", 19); Student s3("小黑", 52); s.insert(s1); s.insert(s2); s.insert(s3); for (set<Student, Function>::iterator it = s.begin(); it != s.end(); it++) { cout << it->age << " " << it->name << endl;; } return 0; }输出结果: 19 小红 20 小白 52 小黑
    转载请注明原文地址: https://ju.6miu.com/read-449994.html

    最新回复(0)