STL基础

本文介绍了STL(StandardTemplateLibrary)的基础架构,包括容器、分配器、算法、迭代器、适配器和仿函数的概念,并通过C++代码示例展示了它们在实际编程中的应用,如使用vector和迭代器遍历容器,以及OOP和GP(泛型编程)的区别。
摘要由CSDN通过智能技术生成

STL体系结构基础介绍:         

六大部件关系图:

容器,分配器,算法,迭代器,适配器,仿函数。

#include<vector>
#include<algorithm>
#include<functional>
#include<iostream>
using namespace std;
//返回大于等于40的个数
int main()
{
	int ia[6] = {27,210,12,47,109,83};//数组名就是指针常量
	vector<int, allocator<int>> vi(ia, ia + 6);//引用ia中的数据
	//  vector 容器,容器背后有分配器支持分配内存,可以不写(默认值),每次分配的内存是int
	cout << count_if ( vi.begin(), vi.end(), not1(bind2nd(less<int>(), 40)));
	// 算法count_if,符合条件的元素个数;vi.begin(),vi.end()迭代器;
	// less() 仿函数,bind2nd()绑定第二参数,所以not1()中的意思就是,小于40。
	// not1() 大于等于40,not1()和bind2nd仿函数适配器
	return 0;
}

上述代码用到了六大部件 

迭代器:

前闭后开区间

可以取到*(c.begin()),但是*(c.end()),不一定取的到。

遍历容器:

#include<vector>
#include<iostream>
using namespace std;
int main()
{
	vector<int> c;
	c = { 1,2,3,5,7,8 };//集合体,容器
	//vector<int>::iterator ite = c.begin();
	auto ite = c.begin();
	for (; ite != c.end(); ++ite)
	{
		cout << *ite << endl;
	}
	return 0;
}

使用auto

int main()
{
	vector<int> c;
	c = { 1,2,3,5,6,7,9,3 };
	for (auto elem : c)
	{
		cout << elem << endl;
	}
	return 0;
}

 OOP(面向对象编程) vs GP(泛型编程)

OOP:数据和操作放在一起,class中

GP:将数据和操作分离开来,操作就是定义的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值