C++ STL模版库实例

//学习记录
PS:C++,STL标准模版库,泛型程序设计

一. 函数适配器的运用(实例代码):找到数组中第一个大于40的数字


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

using namespace std;

int main() {
    int intArr[] = {10,20,30,40,50,60,70,80,90};
    const int N = sizeof(intArr)/sizeof(int); // 1.const
    vector<int> a(intArr,intArr + N);  //2. 初始化vector对象
    vector<int>::iterator p = find_if(a.begin(),a.end(),bind2nd(greater<int>(),15)); //3.绑定适配器
    if (p == a.end())
        cout <<"there is no number greater than 15" << endl;     // 4.endl
    else
        cout << "the firest number bigger than 15 is" << *p << endl;
    return 0;
}
 

运行结果:
Xcode中程序的运行结果

1 . const

如果在整个程序的运行过程中某个数据一直未发生变化,则可以将此数据声明为 const 类型,这样可以提高编译器的运行效率(编译器将认为该数据不会发生变化,从而简化编译过程)

2.初始化vector 对象

可以使用如下格式初始化
格式 : vector<数据类型> 对象名(首对象地址,尾对象地址);
这样就调用了vector的构造函数初始化了一个 vector对象,所存储的内 容为从首对象到尾对象之间的所有数据

3.绑定适配器、 bind1st 、bind2nd

bind1st 将所用实际参数赋值给 指定二元谓词对象的第一个形式参数,完成绑定,形成一个一元谓词对象
PS:
a.绑定适配器属于函数适配器的一种,函数适配器有四大类,他们分别是绑定适配器,组合适配器,函数指针适配器和成员函数适配器,关于函数适配器的相关知识将在之后讲解
b.函数适配器的功能主要是是调整函数对象以适应不同算法的需要
c.函数迭代器包含在相应的容器中

4. endl

·endl是库中的一个对象
·end 可以用来给输出换行换行后光标就在运行环境中移动到了下一行的首位置
·作用相当于"\n"

STL标准模版库和泛型程序设计

STL标准模版库是 C++中一个功能非常强大的库,用来支持泛型程序设计。
STL标准模版库由四个部分构成:容器,迭代器,算法和函数对象
泛型程序设计指的就是在进行程序设计的过程中将算法与特定的数据类型抽离开来,使用抽象数据类型去取代算法中原有的基本数据类型和自定义类型。
这样可以使得我们在实现算法的时候不用去关联具体的数据类型,而是将重心放在算法的设计与优化上,从而设计出更好的算法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值