清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
Set
一 、简介
set是一个集合,其中元素有序,排序的方式按照指定的方式来排序,不指定则默认按照升序排列set中元素不可以相同;比较两个set相同,他们的排序方式和元素都要相同;不能直接改变元素的值,需要先删除,再插入。
set经常用来保存一组数据,他们获得和使用的顺序无关紧要,只需要考虑是否是在集合中即可。
二 、示例代码
#include <iostream> #include <iterator> #include <algorithm> #include <set> using namespace std; struct classcomp { bool operator()(const char& lhs,const char& rhs) { return lhs > rhs; } }; char array[] = {'e','f','g'}; int _tmain(int argc, _TCHAR* argv[]) { set<char,classcomp> myset; myset.insert('a'); myset.insert('b'); myset.insert('c'); copy(myset.begin(),myset.end(),ostream_iterator<char>(cout," ")); cout<<endl; cout<<myset.insert('d').second<<endl; //Now a b c d myset.insert(array,array+3); copy(myset.begin(),myset.end(),ostream_iterator<char>(cout," ")); cout<<endl; //Now g f e d c b a myset.erase('d'); //Now g f e c b a myset.erase(myset.begin()); //Now f e c b a copy(myset.begin(),myset.end(),ostream_iterator<char>(cout," ")); cout<<endl; //myset.clear();//清空set set<char,classcomp>::iterator it= myset.begin(); if ((it = myset.find('k')) == myset.end()) { cout<<"Can not find K in this set"<<endl; } cout<<"Current size is :"<<myset.size()<<endl; }