【set】
存进去就直接去重和排序 ,需要头文件<set>引用
1、头文件——<set>
2、定义——set<int>Q;
3、输入(插入)——insert(x);
4、删除制定元素——erase(x);
5、清空——clear();
6、判空——empty();
7、大小——size();
int a[105]; set<int> s; REP(i,1,5) scanf("%d",&a[i]),s.insert(a[i]); set<int>::iterator it; for(it = s.begin(); it != s.end(); it++){ cout << *it << " "; }
【algorithm】
1、sort:排序神器,后面可加cmp函数
2、unique:去重
int a[105],n=5; REP(i,1,n) scanf("%d",&a[i]); sort(a+1,a+1+n); n=unique(a+1,a+1+n)-a-1; REP(i,1,n) printf("%d ",a[i]);
3、lower_bound & upper_bound:
对于upper_bound来说,返回的是被查序列中第一个大于查找值的指针,也就是返回指向被查值>查找值的最小指针,lower_bound则是返回的是被查序列中第一个大于等于查找值的指针,也就是返回指向被查值>=查找值的最小指针
4、max & min
5、abs(fabs)
6、swap
7、reverse
7、next_permutation:给出全排列的下一个序列
8、fill:数组类型对应范围中的任意值
fill(a,a+5,233) //将a[0]~a[4]均赋值为233
【vector】
1、通过迭代器访问
vector<int> vi; for(i=1;i<=5;i++){ vi.push(i); } vector<int>::iterator it=vi.begin(); for(i=0;i<5;i++) printf("%d ",*(it+i) ); for(vector<int>::iterator it=vi.begin();it!=vi.end();it++) printf("%d ",*it);
只有string和vector能*(it+i)访问
2、插入:
push_back:在队尾插入
pop_back:在队头插入
时间O(1)
insert:在任意出插入
vi.insert ( vi.begin() + 2 /*位置*/ , i/*插入值*/ )
时间O(n)
3、删除:
erase():道理同insert
vi.erase(vi.begin()+1,vi.begin()+4);
erase(first,last)即删除[first,last)内所有元素
4、clear():清空所有元素,时间O(n)
【string】
1、迭代器访问:
不需要像其他stl需要参数,可以直接
string::iterator it;
2、operator+=:
string s1="abc",s2="xyz",s3; s3=s1+s2; s1+=s2;
compare operator :比较规则字典序
3、length() & size()
4、insert() & erase() 相同
5、substr:
string str="Thank you for your smile." cout << str.substr ( 0/*起始位置*/ , 5/*长度*/ ) << endl ; cout<<str.substr(14,4)<<endl;//空格有算 //输出Thack your
6、find:
当s2是s1的子串时,返回s1第一次出现的位置,如果不是则返回npos(其本身值为-1或者4294967295)
时间复杂度为o(nm)
7、replace:
str.replace(it1,it2,str2)把str的迭代器[it1,it2)范围的子串替换成str2
时间复杂度O(str.length())
【map】
1、erase:
单个删除:时间复杂度O(1),key值删除时间复杂度为O(logN),N为map中映射个数
删除区间:左开右闭,时间复杂度O(last-first)
map<char,int> mp; mp[‘a‘]=1; mp[‘b‘]=2; mp[‘c‘]=3; map<char,int>::iterator it=mp.find(‘b‘); mp.erase(it); //删除b 2 for(map<char,int>::iterator it=mp.begin();it!=mp.end();it++) printf("%c %d\n",it->first,it->second);
2、find:
时间复杂度为O(logN),N为map中映射个数
【queue】
1、front队首 & back队尾
时间复杂度o(1)
2、 push入队
pop队首出队
时间复杂度o(1)
3、priority_queue
【stack】
1、 push入栈
pop出栈
时间复杂度o(1)
2、top:访问栈顶元素,时间复杂度o(1)
【pair】
自带内部有两个元素的结构体
两个参数分别对应first和second的数据类型
【bitset】