C++STL(Standard Template Library)【总】


在这里插入图片描述

1、容器

容器放东西,东西要占用内存,所以要有分配器
有一些操作在容器里面做,但是还有一部分在模板函数里面做,就是算法

2、分配器

给容器分配内存。

3、算法

模板函数,要有东西把数据从容器里面传过来,于是有了迭代器

4、迭代器

泛化的指针。

5、适配器

可以对容器、迭代器、仿函数做转换

6、仿函式

7、例程讲解

#include<vector>
#include<algorithm>
#include<functional>
#include<iostream>

int main()
{
	int ia[6] = {24,32,32,54,25,23};
	vector<int,allocator<int>>vi(ia,ia+6);
	//分配器可以不写,但是会默认给出
	//vi是对象,可以设置初值
	cout << count_if(vi.begin(),vi.end(),not1(bind2nd(less<itn>(),40)));
	//count_if()是一个算法,把头尾作为形参带入,
	//less<int>(),40  找出小于40的数
	
}

六大部件在程序中的应用
在这里插入图片描述
复杂度介绍
在这里插入图片描述
迭代器的声明,在每个容器里面声明
在这里插入图片描述
.end()指向的是最后一个元素的后一位

C++11之后,语言简化了很多

for(decl:coll)
{
	statement
}

decl是声明,coll是容器,下面是例子。

for(int i:{1,2,3,4,5,6,6,7})
{
	std::cout << i << std::endl;
}
std::vector<double>vec;
...
for(auto elem:vec)
{
	std::cout << elem << std::endl;
}
for(auto& elem : vec)
{
	elem *= 3;
}

auto关键字可以简写迭代器,elem就是迭代器,功能上和上面定义的迭代器一样,同样,下面的取地址符是为了改变容器里面的元素,否则不会回返到它本身。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值