C++的STL

1.stack
    头文件<stack>
    using name space std;
    定义:stack< typeName > name;
    方法:top()访问栈顶元素
               push(x)
               pop()
               empty()检测stack是否为空,空返回true
               size()返回元素个数
     主要:使用top()或者pop()是先用empty()
 
2.queue
    头文件<queue>
    using name space std;
    定义:queue< namespace > name;
    方法:front(),back()访问队首或队尾
               push(x),pop(),empty(),size()
    注意:使用front()和pop()之前必须用empty()判断队列是否为空
    扩展:priority_queue< typename > name;
               除了front()和back(),其他queue有它就有
               优先级设置:priority_queue< int,vector<int>,less<int> >q;//默认数字大优先
如何想数字小优先级高,把less换成greater


3.vector变长数组
    头文件:<vector>
    using namespace std;
    定义:vector< typename > name;
    和数组一样,可以通过下标访问,也可以通过迭代器访问(类似于指针)
    vector<typename>::iteration it;
    初始化后可以用*it访问数组的元素了。
    迭代器可以++it或者it++,在vector中it还可以加上一个常数。
    begin()方法返回第一个元素的位置,end()返回最后一个元素的下一个元素的位置(外国人习惯左闭右开)
    it = vi.begin(); 
    那么vi[i]和*(vi.begin()+i)是等价的
    方法:push_back(x)在最后一个元素后加一个元素x,pop_back()删除最后一个元素,size(),clear(),insert(it,x)把x插入it所指向的位置,erase(it),erase(first,last)删除[first,last)


4.algorithm头文件下的常用函数
     using namespace std;
     (1)max(x1,x2)和min(x1,x2)参数必须是两个,可以是浮点数,参数多的话就嵌套多用几次。
     (2)abs(x)中x必须为整形,浮点型则可以使用math中的fabs。
     (3)swap(x,y)交换两个值
     (4)reverse(it,it2)可以将数组指针在[it,it2)间的元素或容器的迭代器在同一范围内的元素进行反转。
     (5)fill(it,it2,x)把数组或容器某一段都赋值为x
     (6)sort(首元素地址(必填),尾元素地址的下一个地址(必填),比较函数(非必填) );
         不填比较函数则默认递增排序,char则为字典排序。
         如果想改变排序,则需提供cmp函数,比如     book cmp(int a,int b) {
               return a > b; }
结构体也可定义cmp,进行排序。而对于容器只有vector、string、deque可以使用sort。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值