首页 > 编程语言 >43泛型算法和绑定器

43泛型算法和绑定器

时间:2024-03-04 21:44:05浏览次数:21  
标签:48 绑定 43 算法 vec 泛型 include

泛型算法和绑定器

泛型算法是STL库里面定义的一些算法,这些算法可以用一个接口操作各种数据类型,因此称为泛型算法。

#include<algorithm>

  • 泛型算法接受的都是迭代器,这是为了统一形式
  • 同时可以额外接受函数对象,更改泛型算法的功能

img

绑定器

当需要一个一元函数对象,但需要使用一个二元函数对象,其中一个函数型参是固定值,那么就用到了绑定器。
绑定器+二元函数对象 可转换为一元函数对象。

  • bind1st:把二元函数对象operator()的第一个参数与定值绑定
  • bind2nd:把二元函数对象operator()的第二个参数与定值绑定
  • lambda表达式就是创建临时的函数对象.
#include <iostream>
#include <queue>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;

int main()
{
	int arr[] = { 12, 4, 78, 9, 21, 43, 56, 53, 42, 29 };
	vector<int> vec(arr, arr + sizeof(arr) / sizeof(arr[0]));

	sort(vec.begin(), vec.end(), greater<int>());
	for (int v : vec)
	{
		cout << v << " ";
	}
	cout << endl;

	// 把48插入到第一个小于48的数字前面
	// greater a > b
	auto it2 = find_if(vec.begin(), vec.end(),
		//bind1st(greater<int>(), 48)); // 每次从迭代器指示范围进行 48 > x的比较
		//bind2nd(less<int>(), 48)); // 每次进行 x < 48的比较
		[](int val) -> bool { return val < 48; });
	vec.insert(it2, 48);
	for (int v : vec)
	{
		cout << v << " ";
	}

	return 0;
}

标签:48,绑定,43,算法,vec,泛型,include
From: https://www.cnblogs.com/sio2zyh/p/18052791

相关文章

  • abc343比赛总结
    写在前面A简单,随便取两个值判一下,不过这道题的名字不吉利,叫什么WA啊?B简单,读入的时候判断一下是不是\(1\)就行了。C有点点难,题目不是那么好理解(尤其是英文不好的话)。虽然说\(N\le10^{18}\)但是仔细算一下其实只需要1e6的遍历一遍就够了,毕竟有个三次方。D......
  • 高级口译教程第5版pdf电子版,12341243
         1231123131231231第1篇:高级口译教程第四版UniteOne外事接待口译课文01浏览:2511第2篇:高级口译教程第四版UniteOne外事接待口译课文02浏览:1559第3篇:高级口译教程第四版UniteOne外事接待课外练习01浏览:1327第4篇:高级口译教程第四版Unite......
  • 代码随想录算法训练营第三十六天| ● 435. 无重叠区间 ● 763.划分字母区间 ● 56.
    无重叠区间 题目链接:435.无重叠区间-力扣(LeetCode)思路:我的思路是先将所有区间按左端点从小到大排序,左端点相同时右端点从小到大排序。接下来遍历数组,如果下一个区间与该区间有重叠部分,count加1,同时遍历下下一个区间(下一个区间被视为删除),同时如果下一个区间被包含在该区间中,......
  • 洛谷题单指南-搜索-P1443 马的遍历
    原题链接:https://www.luogu.com.cn/problem/P1443题意解读:无论是国际象棋还是中国象棋,马的活动范围都是一样的:只不过国际象棋棋子是在格子中,中国象棋棋子是在交点,坐标的变化方式是一样的,根据此活动范围,计算马到达每一个点的最短路径。解题思路:根据马的活动范围,在棋盘内进行B......
  • abc343G 题解
    题意给你\(N\)个由小写字母组成的字符串\(S_1,S_2,\ldots,S_N\),找出一个母串使得它包含所有这些字符串作为它的子串,最小化该母串的长度并输出。\(1\leqN\leq20\),\(\sum|S_i|\leq2\times10^5\)(没错洛谷翻译就是我写的)思路首先如果有一个字符串被另一个字符串......
  • 洛谷题单指南-二分查找与二分答案-P3743 kotori的设备
    原题链接:https://www.luogu.com.cn/problem/P3743题意解读:设备使用的时间越久,需要充电的总时间也越多,具备单调性,根据使用的时间,计算需要充电的时间,如果充电总时间<=使用的时间,说明有电量还能富余,使用时间还可以更多,因此只需对使用时间进行二分即可。解题思路:给定设备使用的时间......
  • 精简实现、线程安全:C#通用单例泛型基类助你轻松创建单例模式
     概述:该通用单例泛型基类使用C#实现,线程安全,通过泛型参数和Lazy<T>实现简化的单例模式。优点包括线程安全、泛型通用性、简化实现、以及延迟加载的特性。优点:线程安全: 使用Lazy<T>确保了线程安全的延迟初始化,避免了在多线程环境下可能导致的竞态条件问题。泛型通用性: 通......
  • northwest uniapp: 顶部导航栏右侧添加uni-icons图标,并绑定点击事
    说明该配置按页面配置,无法全局配置使用方法引入uni-icons插件插件地址:点击此处跳转到uni-icons引入以后,会发现uni-modules中新增如下目录和文件:仅需要那个uniicons.ttf文件,不引入插件、单独把那个文件下载到本地也是可以的。复制uniicons.ttf文件到static目录下不知道......
  • 光标自动定位到起始位置contenteditable="true" ,v-html绑定内容,div可编辑时,光标移到最
    出现这个问题原因:(1)通过打断点可以看到,当你输入的时候触发input事件,提交值给父组件中的v-model;(2)但因为在子组件中又监听了v-model的值,所以整体形成了闭环;(3)还需要重点说明的是光标问题,contenteditable与v-html所在的元素值的改变如果不是通过输入而是通过赋值实现,光标就会跑到最......
  • ABC343 A~E 解题报告
    A-WrongAnswer模拟题,只需要每次输出\(0\)到\(9\)内不等于\(a+b\)的值就行了。#include<bits/stdc++.h>usingnamespacestd;template<typenameT>Tread(Tx){Topt=1,sum=0;charch=getchar();while(!isdigit(ch)){if(ch=='-')opt=......