[c++] STL 标准算法_泛型编程

 

 

 

  • _if


1 #include <iostream>
2 #include <vector>
3 #include <algorithm>
4 using namespace std;
5
6 int main(int argc,char* argv[]){
7 vector<int> vecSalary;
8 cout<<"请输入工资数据,0表示输入结束"<<endl;
9 int nSalary = 0;
10 do{
11 cin>>nSalary;
12 if(0==nSalary)
13 break;
14 vecSalary.push_back(nSalary);
15 }while(true);
16 int nTotal = count_if(vecSalary.begin(),vecSalary.end(),
17 bind2nd(greater<int>(),1000));
18 cout<<"工资超过1000的员工有"<<nTotal<<"人"<<endl;
19 return 0;
20 }


[c++] STL 标准算法_数据_02

 

 

 

 

 

 

  • 泛型编程(generic programming):大量应用模板实现代码重用的编程方式
  • 与面向对象编程不同,泛型编程不要求我们通过额外的间接层来调用函数
  • 通过模板机制,构建一类操作类似但数据类型不同的程序,包括函数模板和类模板
  • 泛型算法库STL是泛型编程的代表作,以迭代器和容器为基础,将算法和数据结构完全分开 
  • 容器可以管理算法要处理的大量特定类型数据
  • 容器是一些数据结构的模板类,需要实例化后使用
  • 为提高内存操作的性能,优先在容器中存放对象的指针
  • vector是最常用的容器,是数组的最佳替代者
  • STL算法的“四大帮派”:
  • 不改变顺序的操作:for_each(),find(),count(),mismatch(),equal(),search()
  • 改变顺序的操作:copy(),swap(),transform(),replace(),fill()
  • 排序操作:merge(),binary search()
  • 数字操作:inner product(),partial sum()

[c++] STL 标准算法_代码重用_03

 

 

 

[c++] STL 标准算法_泛型编程_04

 

[c++] STL 标准算法_数据_05