set的基本用法

  • Post author:
  • Post category:其他


一、简介

  • 头文件:#include<set>
  • 元素会自动排序
  • set: 元素不重复的结合,
  • multiset:元素可以重复的集合

二、set类型的构造


set<int>  S;   //声明一个int类型的集合
set<char> S;  //声明一个char类型的集合
multiset<int> S;//声明一个可以存在相同元素的int类型的集合
multiset<string> S; //声明一个可以存在相同元素的string类型的集合
----------------------------------------------------------------------

三、元素的插入


multiset<string> S; //声明一个可以存在相同元素的string类型的集合

S.insert("fuck");   //"fuck"
S.insert("you");    //"fuck","you"
S.insert("hello");  //"fuck","hello","you"
S.insert("hello");  //"fuck","hello","hello","you"

----------------------------------------------------------------------
set<int>  S;//声明一个不存在相同元素的int类型的集合

S.insert(1); //1
S.insert(2); //1,2
S.insert(3); //1,2,3
S.insert(4); //1,2,3,4
S.insert(4); //1,2,3,4
-------------------------------------------------------------------------

multiset<int> S;//声明一个可以存在相同元素的int类型的集合
S.insert(1); //1
S.insert(2); //1,2
S.insert(3); //1,2,3
S.insert(4); //1,2,3,4
S.insert(4); //1,2,3,4,4

四、元素的删除

set<int>  S;  //设初始集合{1,2,3,4,5,6,7,8,9,}
S.erase(5) //根据元素内容删除5 {1,2,3,4,6,7,8,9,}
 
set<int>::iterator ita = s.begin();//声明迭代器 
set<int>::iterator ita = s.begin()+3;
S.insert(ita)//删除迭代器指向的元素 {2,3,4,6,7,8,9,}
S.insert(ita,itb)删除区间 [ita,itb)的元素{4,6,7,8,9,}

S.clear() ;//清空 

五、元素的查找


set<int>  S;  //设初始集合{1,2,3,4,5,6,7,8,9,}

set<int>::iterator it;

it=S.find(5);//查找元素第一次出现5的位置,返回迭代器 如果没找到则返回end()

六、其他操作

s.begin()     返回指向第一个元素的迭代器

s.end()       返回指向最后一个元素之后的迭代器,不是最后一个元素

s.count()     返回bool型,有返回1,无返回0

s.empty()     如果集合为空,返回true

s.find()      返回一个指向被查找到元素的迭代器,

s.size()      集合中元素的数目

s.swap()      交换两个集合变量



版权声明:本文为qq_41431457原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。