第三天。。。

今天学习了STL中的一些函数

stack~~~~~栈,FILO,push进,pop出最后一个push的元素

queue~~~~~队列,FIFO,push进,pop出第一个push的元素

deque~~~~~双向队列,可push_front, push_back, pop_front, pop_back,来在队列前面,后面输入,从队列前面后面弹出元素

set~~~~~,set中的元素不能重复。insert(),向set中插入元素。erase(???),擦除set中的某元素。count(???),在set中查找是否有某元素,是则返回1,否则返回0。

algorithem~~~~~sort,将元素从小到大排序,sort(begin(),end()),若要降序排列可写成sort(begin(),end(),greater<>()),注意左闭右开  [   )。

 

 

string~~~~~与字符串相关的函数,string可直接定义字符串,size()或lenth()某字符串的长度。string 中字符串的+将两个字符串连接起来。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

二分法查找(复杂度低):

首先将数列排序,a[r-l],一般升序,查找  x,数列左右两端分为 a[ l],a[ r]。

while(l<=r)

{

  mid= l + ( r - l )/2;

  if(a[mid]==x) return 1;

  else if (  a[mid] < x )     l = mid +1 ;  

  else if (  a[mid] > x )     r = mid -1 ;     

}

return -1;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

并查集:

”并“:两个数    a  ,  b;合并,可视为  a  是  b  的  “爹”,再有    b  ,  c 合并,则  b 是  c 的爹,又因a是b的爹,  所以a也是c的爹。  a<------b<------c        

fa[k]=k; 一开始,各自是各自字的爹;

fa[b] = a ;

fa[c] = b ;

 fa[ find(b) ]=find( a ) ;

 

 ”查“~~~~~找爹函数。。

int fa[k]=k;

int find(   int  x  )

{

  if ( fa[x]==x;) return k;

  else return   fa[x]  =   find (  fa[x]  );

}

 

posted @ 2019-10-03 22:57  007!  阅读(96)  评论(0编辑  收藏  举报