c++ - lower_bound lambda 比较错误
问题描述
试图Comp arg
在lower_bound
func 中使用 lambda,但没有成功。我想使用带有lower_bound std
func 的 lambda。似乎错误的参数会导致错误。下面是重现问题的最小示例。我究竟做错了什么?
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<pair<int, pair<int, int>>> vertical(2);
vector<pair<int, pair<int, int>>> horizontal(2);
for (auto& h : horizontal)
{
auto it = std::lower_bound(vertical.begin(), vertical.end(), h,
[](vector<pair<int, pair<int, int>>>::iterator it, vector<pair<int, pair<int, int>>>::iterator sec) -> bool { return it->first < sec->second.first; });
}
}
错误
错误 C2664: 'bool main::::operator ()(std::_Vector_iterator>>,std::_Vector_iterator>>) const': 无法将参数 1 从 'std::pair>' 转换为 'std::_Vector_iterator> >' 1> 与 1> [ 1> _Ty=std::pair> 1> ]
解决方案
推荐阅读
- arrays - 如何使用terraform从json模板中定义的字符串数组中获取字符串值
- django - 两次扩展用户模型的最佳解决方案(学生/教师)
- node.js - express-validator isIn 的问题
- keyguard - 如何在android 11上打开屏幕?
- networking - 瞻博网络浮点方案/错误的详细信息是什么,其中粘性位丢失?
- c - 指针和数组增量问题
- flutter - Flutter:如何在 Provider 中创建 Fture List 的副本?
- java - 如何从 Java 中的 TreeViewer 获取每个树项的文本宽度(以像素为单位)?
- python - 有人可以解释为什么结果不一样吗?
- python - 如何在 Tkinter 窗口中删除不需要的可滚动空间