容器 C++ set

    技术2024-07-01  61

    容器 C++ set

     

     set, multisetset和multiset会根据特定的排序准则自动将元素排序,set中元素不允许重复,

    multiset可以重复。

    因为是排序的,所以set中的元素不能被修改,只能删除后再添加。向set中添加的元素类型必须重载<操作符用来排序。排序满足以下准则:1、非对称,若A<B为真,则B<A为假。2、可传递,若A<B,B<C,则A<C。3、A<A永远为假。

    set中判断元素是否相等:if(!(A<B || B<A)),当A<B和B<A都为假时,它们相等。map, multimapmap和multimap将key和value组成的pair作为元素,根据key的排序准则自动将元素排序,map中元素的key不允许重复,multimap可以重复。

    因为是排序的,所以map中元素的key不能被修改,只能删除后再添加。key对应的value可以修改。

    向map中添加的元素的key类型必须重载<操作符用来排序。排序与set规则一致。演示代码:

     

    #include<iostream>#include<vector>#include<set>#include<algorithm>#include<functional>using namespace std;void print(int i){ cout << i << ' ';}int  main(){ {  int i;  int ia[10]={12,14,54,6,3,66,45,90,10,20};  vector<int> iv(ia, ia+10);  for_each(iv.begin(), iv.end(), print);  cout << endl;  cout<<endl;  sort(iv.begin(), iv.end());  for_each(iv.begin(), iv.end(), print);  cout << endl;  set<int> is;  is.insert(4);  is.insert(3);  is.insert(7);  is.insert(4);  is.insert(2);  for_each(is.begin(), is.end(), print);  cout << endl; }  } 

    最新回复(0)