向量的下限

2023-12-15

我有这个简单的课程:

class MyClass {
public:
    int id;
    string name;

};

我想要一个带有指向此类对象的指针的向量,该向量按引用排序MyClass id。我以为使用lower_bound很容易,我之前用对象向量(而不是指针)做过。对于对象,我超载了operator<像那样:

bool operator<(MyClass left, int right) {
    return (left.id < right);
}

然后我用了lower_bound插入新的MyClass排序向量的对象。

vector<MyClass>::iterator low;
low = lower_bound(vectorname.begin(),vectorname.end(),id);
prP = idContainer.begin();
prP = idContainer.insert(low, newobject); 

我不知道如何对向量做同样的事情MyClass指针。谁能帮助我实现这一目标?


有两个重载std::lower_bound:

template< class ForwardIt, class T >
ForwardIt lower_bound( ForwardIt first, ForwardIt last, const T& value );

template< class ForwardIt, class T, class Compare >
ForwardIt lower_bound( ForwardIt first, ForwardIt last, const T& value, Compare comp );

第一个是您用于您的vector<MyClass>, 它用operator<默认情况下。第二个允许自定义比较函数,该函数将容器中的元素作为第一个参数,将值作为第二个参数。这就是您想要用于您的vector<MyClass*>:

std::vector<MyClass*> pvec;
auto low = std::lower_bound(pvec.begin(), pvec.end(), id,
    [](const MyClass* c, const MyClass& id) {
        return *c < id;
    });

比较需要两个不同类型的参数,这有点奇怪,但事实就是如此。

注:您当前的operator<其参数为value。这会产生不必要的副本。您需要更改它以引用它们const.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向量的下限 的相关文章

随机推荐

  • 转换数据类型为 Option Strict

    我只是想知道如何正确 将字符串转换为日期 将整数转换为短整型 将字符串转换为整数 将字符串转换为双精度 正确地不使用任何类型 我打开了 Option Strict 现在所有这些错误都弹出了 所以我正在尝试修复它们 NET 提供了多种检查 测
  • 在另一个函数中使用一个函数的返回结果[重复]

    这个问题在这里已经有答案了 我知道这有几个问题 我读过但我无法理解 我试图在另一个函数中使用一个函数的返回结果 def multiplication a c a a return c def subtraction c d c 2 retu
  • 如何包含 pandas date_range() 的两端

    我想从一对日期创建一个按月频率的日期列表 包括两个日期所指示的月份 import pandas as pd import datetime Option 1 pd date range datetime 2022 1 13 datetime
  • 如何设置面板的透明不透明度

    我如何将面板设置为透明 如不透明度为0 我通过程序设置面板 它位于视频播放器的顶部 代码是这样的 Private Sub Button1 Click sender As Object e As EventArgs Handles Butto
  • 为什么我们要在 PyTorch 中“打包”序列?

    我试图复制如何对 rnn 的可变长度序列输入使用打包但我想我首先需要理解为什么我们需要 打包 序列 我明白为什么我们 填充 它们 但为什么 打包 通过pack padded sequence 必要的 我也偶然发现了这个问题 下面是我的发现
  • Bert 针对语义相似性进行了微调

    我想应用微调 Bert 来计算句子之间的语义相似度 我搜索了很多网站 但几乎没有找到有关此的下游信息 我刚刚发现STS基准测试 我想知道是否可以使用STS基准数据集来训练微调bert模型 并将其应用到我的任务中 合理吗 据我所知 计算相似度
  • ffmpeg/PHP - 将任何视频格式转换为 ogg 时出现问题 - 视频断断续续/无音频 - win64

    如果这是一个重新发布 类似的帖子 首先让我道歉 因为我尽了最大努力在此处和谷歌上已创建的帖子中搜索我的问题的具体解决方案 但无法 我在 win64 系统的本地主机上使用 ffmpeg 创建 测试视频转换脚本 然后将它们上传到服务器 我能够成
  • NoSuchElementException:消息:尝试通过 Selenium 和 Python 单击按钮 VISA 时无法定位元素

    我无法点击此按钮在我的机器人上创建结账 我想点击图片进入另一页
  • 如何用opencv获得所有不失真的图像

    我在用着cv undistort但它会裁剪图像 我想要所有未失真的图像 以便未失真的尺寸比原始图像更大 如下所示 我想我需要使用cv getOptimalNewCameraMatrix但我的试验没有运气 有什么帮助吗 仅供记录 你应该使用c
  • Spark 在标准输出上丢失 println()

    我有以下代码 val blueCount sc accumulator Long 0 val output input map data gt for value lt data getValues if record getEnum Da
  • 是否可以使用新的 csproj 项目文件覆盖或清除 dll 构建中的调试路径?

    使用时dumpbin查看我的图书馆的详细信息 dumpbin headers Test dll 我看到 FullFolder to Test pdb 是 pdb 的完整文件夹 调试目录 Time Type Size RVA Pointer
  • 从 $lookup 以及整个文档中获取数组中过滤后的元素数量

    我在 MongoDB 中有这样的查询 db emailGroup aggregate lookup from link localField id foreignField emailGroupId as link unwind link
  • 无法访问远程git仓库

    我通过 github 网站的 新按钮 创建了一个 git 存储库 然后我使用 git bash 设置本地存储库并尝试拉取远程存储库 它有默认的自述文件 但收到 访问被拒绝错误 与此问题中看到的错误相同 无法推送到 git 存储库 权限被拒绝
  • 使用 Gson for Java 进行 JSON 解析

    我想解析 JSON 类型的数据String 我在用谷歌Gson I have jsonLine data translations translatedText Hello world 我的班级是 public class JsonPars
  • python 中的计算器

    我正在尝试制作可以使用基本 4 个运算符 例如 1 2 3 4 5 求解表达式的计算器 但是它不起作用 我不知道出了什么问题 请检查我的代码 当我运行它时 我在 8 行中收到无限数量的错误return ret parts 0 ret par
  • MySQL/InnoDB 和长时间运行的查询

    当使用 myisam 引擎运行查询时 因为它不是事务性的 所以长查询 据我所知 不会影响其他查询的数据 在 InnoDB 中 它警告的事情之一是避免长查询 InnoDB快照时 是不是把所有东西都快照了 我问这个问题的原因是 无论出于何种原因
  • 为什么我的批处理脚本以管理员身份运行时无法执行?

    我正在尝试创建一个 Windows 批处理脚本 该脚本将允许我部署 Windows 7 64 位的准备更新 但该脚本无法正常启动 我将所有文件放在同一个文件夹中 我尝试提取文件 然后通过 dism 安装它们 当我正常启动它时 文件提取 但
  • ThreeJS:将边缘几何应用于 ArrowHelper

    我正在尝试使用 ThreeJS 中的 ArrowHelper 创建箭头 let arrow new THREE ArrowHelper direction normalize new THREE Vector3 length color h
  • 如何远程访问自托管的 Nancy 服务?

    我正在创建一个简单的 Windows 服务 该服务托管 Nancy 实例以提供其内部数据的视图 在本地计算机上使用浏览器时 一切都按预期运行 我看到了它所提供的观点 但是 我找不到它无法从远程浏览器 在同一网络上 访问的任何原因 从远程浏览
  • 向量的下限

    我有这个简单的课程 class MyClass public int id string name 我想要一个带有指向此类对象的指针的向量 该向量按引用排序MyClass id 我以为使用lower bound很容易 我之前用对象向量 而不