#include<stdio.h>#include<vector>#include<set>using namespace std;intmain(){vector<int>v;for(int i=0;i<10;i++){v.push_back(i);v.push_back(i);}set<int>s;s.insert(v.begin(),v.end());set<int>::iterator it;for(it=s.begin();it!=s.end();it++){printf("%d\t",*it);...
Set(集合)属于关联式容器,也是STL中最实用的容器,关联式容器依据特定的排序准则,自动为其元素排序。Set集合的底层使用一颗红黑树(可能读者对此不太了解,等但学到树论与图论的章节的时候就会明白原因),其属于一种非线性的数据结构,每一次插入数据都会自动进行排序,注意,不是需要排序时再排序,而是每一次插入数据的时候...
voidfill(IntSet &set) { set.insert(4); set.insert(7); set.insert(5); set.insert(1); set.insert(6); set.insert(2); set.insert(5); } 运行结果: 虽然set1和set2的而比较准则本身不同,但是型别相同,所以可以进行赋值操作。 非变动性操作 注意:元素比较操作只能用于型别相同的容器。 特殊的搜...
set容器中只能存储键,是单纯的键的集合,其中键是不能重复的。 set支持大部分的map的操作,但是set不支持下标的操作,而且没有定义mapped_type类型。 下面简单总结下set容器的操作: 1、set对象的定义和初始化 set对象的定义和初始化方法包括: set<T> s; set<T> s(s1); set<T> s(b, e); 其中,b和e分别...
set<int,greater<int>> col1; 此时,排序准则就是型别的一部分。型别系统确保只有排序准则相同的容器才能被合并。 程序实例: [cpp]view plain copy print? #include <iostream> #include <set> ...
1.1 vector(数组)封装动态数组的顺序容器。 1.2 queue(队列)是容器适配器,他是FIFO(先进先出)的数据结构。 1.3 deque(双端队列)是有下标顺序容器,它允许在其首尾两段快速插入和删除。 1.4 set(集合)集合基于红黑树实现,有自动排序的功能,并且不能存放重复的元素。
C++标准容器类STL中的集合 set 比较特殊,在其中存储的元素是独一无二的,因为它存储的元素值同时也充当“key”的角色,也即可以通过“key”访问指定的元素。此外,元素一旦被插入到 set 容器类中,就不能在被修改,不过,我们可以删除它或者插入新的元素。
set和multiset的去别在于前者的key值不可以重复,所以用随机数作为其元素进行插入时,遇到重复元素就会被拒绝插入(但是程序不会崩溃)。 例程 #include<stdexcept> #include<string> #include<cstdlib> #i
set(集合)和multiset(多重集合):查找时间复杂度为O(log n),底层通常使用红黑树实现,具有较好的平衡性能。 map(映射)和multimap(多重映射):查找时间复杂度为O(log n),底层通常使用红黑树实现,按键进行自动排序。 stack(栈)和queue(队列):查找时间复杂度为O(n),因为它们是容器适配器,提供了先进先出(FIFO)或...
set(集合)和multiset(多重集合):查找时间复杂度为O(log n),底层通常使用红黑树实现,具有较好的平衡性能。 map(映射)和multimap(多重映射):查找时间复杂度为O(log n),底层通常使用红黑树实现,按键进行自动排序。 stack(栈)和queue(队列):查找时间复杂度为O(n),因为它们是容器适配器,提供了先进先出(FIFO)或...