C++常用函数

本文详细介绍了C++ STL中的sort函数及其用法,包括如何指定排序区间、自定义比较函数来改变排序方式等内容。此外还介绍了next_permutation函数的应用场景,以及setw、lower_bound和upper_bound等函数的功能和使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sort函数:(比C语言qsort快)

注意:此处的first,last是两个地址,且有如下特性:sort(first,last)
一般的,last并非所需排列数组的最后一个元素,而是first+元素个数,例如以下程序段:
int a[4] = {4,3,2,1};
此时对数组a进行排列,命令为:
sort(a,a+4);
在[first, last]中的元素进行排序按升序排列

first, last - 范围内的元素进行排序
comp -
比较函数,如果第一个参数小于第二个该函数,返回true。比较函数的签名应该相当于以下
:bool cmp(const Type1 &a, const Type2 &b);
签名不需要const &,但是函数不能修改对象传递给它。类型1和类型2他类型必须是这样一个类型的对象的引用,然后RandomIt可以隐式转换为两人。
默认增序,可以自己写comp函数改变排序方式。当comp返回true,不交换

swap():交换

STL的next_permutation()函数:生成全排列,如:

int main(){  
    string str;  
    cin>>str;  
    sort(str.begin(),str.end());  
    cout<<str<<'\n';  
    while(next_permutation(str.begin(),str.end())){  
        cout<<str<<'\n';  
    }  
    return 0;  
}  
setw(int n):用来控制输出间隔
例如:
cout<<'s'<<setw(8)<<'a'<<endl;
则在屏幕显示
s        a 
//s与a之间有7个空格,setw()只对其后面紧跟的输出产生作用,如上例中,表示'a'共占8个位置,不足的用空格填充。若输入的内容超过setw()设置的长度,则按实际长度输出。
setw()默认填充的内容为空格,可以setfill()配合使用设置其他字符填充。
如
cout<<setfill('*')<<setw(5)<<'a'<<endl;
则输出:
****a //4个*和字符a共占5个位置。

lower_bound()

返回一个 iterator 它指向在[first,last)标记的有序序列中可以插入value,而不会破坏容器顺序的第一个位置,而这个位置标记了一个不小于(大于或等于)value 的值   该函数为C++ STL内的函数。

upper_bound()

返回一个 iterator 它指向在[first,last)标记的有序序列中可以插入value,而不会破坏容器顺序的第一个位置,而这个位置标记了一个大于value 的值  该函数为C++ STL内的函数。

以上两种boun在使用时,需要保证[begin , end)中元素已经有序。而且使用不光限于这种函数体的,还可以作为map,set等的成员函数,但参数只有value。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值