内部的元素依据其值自动排序
在vector,list, deque几个容器中插入数据元素时,插入的位置是确定的(最前,最后或是指定的某个位置上)
而在关联容器中插入数据时,根据插入数据元素的大小确定插入的位置(根据对象所属类中定义的(重载的)比较函数)
set内的相同数值的元素只能出现一次,
multiset内可包含多个数值相同的元素,
内部由二叉树(二叉链表,平衡二叉树,默认升序)实现,便于查找;
set的基本原理分析
将插入的值(第一个操作数)与树根(第二个操作数)(红黑树,二叉排序树)进行比较,如果返回值是true,则在左子树中进行插入
否则在右子树中进行插入。
#include
#include
using namespace std;
int main(){
set s;
s.insert(3);
s.insert(2);
s.insert(1);
s.insert(1);
cout<<“set 的 size 值为 :”<<s.size()<<endl;
cout<<“set 的 maxsize的值为 :”<<s.max_size()<<endl;
cout<<“set 中的第一个元素是 :”<<*s.begin()<<endl;
cout<<“set 中的最后一个元素是:”<<*s.end()<<endl;
s.clear();
if(s.empty()) { cout<<“set 为空 !!!”<<endl; }
cout<<“set 的 size 值为 :”<<s.size()<<endl;
cout<<“set 的 maxsize的值为 :”<<s.max_size()<<endl;
return 0;
}
Set容器的遍历
#include
#include
using namespace std;
int main(){
set s;
set::iterator ite;
s.insert(3); s.insert(2); s.insert(1); s.insert(1);
for(ite=s.begin();ite!=s.end();ite++)
cout<<*ite<<" “;
cout<<endl;
ite=s.begin();
while(p!=s.end()) {
cout<<*ite<<” "; p++;
}
return 0;
}
Set
最新推荐文章于 2022-07-18 23:02:22 发布