[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 }

- 泛型编程(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 标准算法的更多相关文章
- STL标准库-算法-常用算法
		
技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性 介绍11种STL标准库的算法,从这11种算法中总结一下算法的基本使用 1.accumulate() 累加 2.for_each( ...
 - C++ Templates  STL标准模板库的基本概念
		
STL标准库包括几个重要的组件:容器.迭代器和算法.迭代器iterator,用来在一个对象群集的元素上进行遍历操作.这个对象群集或许是一个容器,或许是容器的一部分.迭代器的主要好处是,为所有的容器提供 ...
 - C++复习:STL之算法
		
算法 1算法基础 1.1算法概述 算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. <algorithm> ...
 - STL标准库-容器-set与multiset
		
技术在于交流.沟通,转载请注明出处并保持作品的完整性. set与multiset关联容器 结构如下 set是一种关联容器,key即value,value即key.它是自动排序,排序特点依据key se ...
 - STL标准库-容器-vector
		
技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性. 向量容器vector是一个动态数组,内存连续,它是动态分配内存,且每次扩张的原来的二倍. 他的结构如下 一 定义 vector ...
 - STL在算法比赛中简单应用
		
STL基础 和 简单的贪心问题 STL(Standard Template Library) 即 标准模板库. 它包含了诸多在计算机科学领域里所常用的基本数据结构和算法.这些数据结构可以与标准算法一起 ...
 - C++ STL标准入门
		
C++:STL标准入门汇总 第一部分:(参考百度百科) 一.STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.它是由Alexand ...
 - C++STL标准库学习笔记(二)二分查找
		
二.STL中的二分查找算法 1.binary_search 2.lower_bound 3.upper_bound 记得#include<algorithm>! 前言: 在这个笔记中,我把 ...
 - C++STL标准库学习笔记(一)sort
		
前言: 近来在学习STL标准库,做一份笔记并整理好,方便自己梳理知识.以后查找,也方便他人学习,两全其美,快哉快哉! 这里我会以中国大学慕课上北京大学郭炜老师的<程序设计与算法(一)C语言程序设 ...
 
随机推荐
- LamPiao靶机work_through
			
前言 oscp靶机系列的第二篇.只追求做出来的话,这靶机蛮简单的.但是为了提升难度,尽量避免使用msf--毕竟考试只准用一次嘛,自己写了个exp. 正文 主机发现 nmap -sP 192.168.2 ...
 - docker部署kafka集群
			
利用docker可以很方便的在一台机子上搭建kafka集群并进行测试.为了简化配置流程,采用docker-compose进行进行搭建. kafka搭建过程如下: 编写docker-compose.ym ...
 - shell字符串处理总结
			
1. 字符串切片 1.1 基于偏移量取字符串 返回字符串 string 的长度 ${#string} 示例 [root@centos8 script]#str=" I Love Python ...
 - C#中SQLite的使用及工具类
			
目录 SQLite简介 存储类 亲和类型 引用System.Data.SQLite.dll 软件包分类 使用本机库预加载 常用部署包 工具类 参考资料 SQLite简介 SQLite是一款轻型的数据库 ...
 - Vue3.0中引入地图(谷歌+高德+腾讯+百度)
			
1 概述 项目需求需要引入地图,对于目前最新的Vue3.0,无论是百度/高德/腾讯地图目前还没有适配,只有Vue 2.x版本的: 目前只有谷歌地图的Vue3.0适配: 但是没有适配并不代表不能使用,本 ...
 - redhat 7.6 安装Python3后配置 yum pip3 升级openssl
			
安装python3后需要重新配置yum 配置yum vim /usr/bin/yum #! /usr/bin/python #修改前#! /usr/bin/python2 #修改后 vim /usr/ ...
 - Go-14-解决 go get golang.org/x/text 拉取失败问题
			
现象 在执行go get -v github.com/spf13/cobra/cobra 时,报go get golang.org/x/text 拉取失败问题 解决方法: 在 ${gopath}/sr ...
 - RTSP 流相关工具介绍
			
RTSP (Real Time Streaming Protocol),实时流协议,是一种应用层协议,专为流媒体使用.本文将介绍 GStreamer, VLC, FFmpeg 这几个工具,如何发送.接 ...
 - 【Azure Developer】调用SDK的runPowerShellScript方法,在Azure VM中执行PowerShell脚本示例
			
当需要通过代码的方式执行PowerShell脚本时,可以参考以下的示例. Azure SDK中提供了两个方法来执行PowerShell脚本 (SDK Source Code: https://gith ...
 - prometheus入门介绍及相关组件、原理讲解
			
1:介绍 Prometheus 是由 SoundCloud 开源监控告警解决方案. prometheus是由谷歌研发的一款开源的监控软件,目前已经被云计算本地基金会托管,是继k8s托管的第二个项目. ...