C with STL入门详解(适合初学者)

这个博客不再更新,新博客地址请戳

1.STL是什么?

STL是Standard Template Library的简称,中文名标准模板库。简单来说就是封装好的一些组件。主要有容器(containers)和算法(algorithms)两部分。


2.C with STL是什么?
字面意思,一般来说程设竞赛或程设考试用得上的C++部分其实就是C+STL,有了《C语言程序设计》和《数据结构》这两门课程的基础,学习C+STL并非难事。


3.为什么要学STL呢?
方便。比如你要实现一个链式队列,以及它的一系列功能,你需要敲几十乃至上百行代码,还要投入精力debug,可在STL里,给你做好现成的queue你用不用?现成的快排你用不用?平均复杂度O(nlogn)的排序只要几句话,手写一个冒泡也得好几行吧?还卡时。


4.我有兴趣了,怎么学呢?
正确的学习姿势,以及,熟能生巧。


下面步入主题。

1.swap(交换两元素值,在algorithm下,用法:swap(a,b);)
交换两元素的值在C语言课上作为指针讲解的典例。

int a=1,b=2;
swap(a,b);
//此时a=2,b=1

2.sort(对序列进行排序,在algorithm下)

//数组排序:
int a[10]={1,3,5,7,9,2,4,6,8,0};
sort(a,a+10);

//如果用的是vector,这样写
vector<int> a;
sort(a.begin(),a.end());//之后会提到vector,这里不做解释

//默认由小到大排序,当然我们可以重载排序的顺序

bool cmp(int a,int b)//从大到小排序
{
	return a>b;
}
//然后
sort(a,a+10,cmp);
sort(a.begin(),a.end(),cmp);

使用sort是一个越用越活的过程,你要喜欢,还能用:

sort(a,a+10,greater<int>());
sort(a.begin(),a.end(),less<int>());

sort的平均时间复杂度是O(nlogn)


3.reverse(翻转序列,在algorithm下ÿ

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值