指针向量上的 std::find()

2023-12-26

我想搜索一个指针向量并将指针与int。我最初的想法是使用std::find()但我意识到我无法将指针与int.

Example:

if(std::find(myvector.begin(), myvector.end(), 0) != myvector.end()
{
   //do something
}

myvector是一个包含指向类对象的指针的向量,即vector<MyClass*> myvector.MyClass包含一个方法getValue()这将返回一个整数值,我基本上想遍历向量并检查每个对象的getValue()返回值来确定我做什么。

使用前面的例子:

if(std::find(myvector.begin(), myvector.end(), 0) != myvector.end()
{
   //Output 0
}
else if(std::find(myvector.begin(), myvector.end(), 1) != myvector.end()
{
   //Output 1
}
else if(std::find(myvector.begin(), myvector.end(), 2) != myvector.end()
{
   //Output 2
}

它几乎就像一个绝对条件,如果我的向量中的任何指针的值为0,我输出零,我输出0。如果没有找到零,我查看是否有1。如果找到1,我输出1 .等等等等.


Use std::find_if()反而。其他答案展示了如何使用 lambda 作为谓词,但这仅适用于 C++11 及更高版本。如果您使用的是早期的 C++ 版本,您可以这样做:

struct isValue
{
    int m_value;

    isValue(int value) : m_value(value) {}

    bool operator()(const MyClass *cls) const
    {
        return (cls->getValue() == m_value);
    }
};

...

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

指针向量上的 std::find() 的相关文章

  • 尚未注册类型“IServiceProviderFactory[Autofac.ContainerBuilder]”的服务

    当运行以下命令添加数据库迁移脚本时 出现以下错误 dotnet ef migrations add InitialCreate v o Migrations context MyContext 访问 Microsoft Extensions
  • 如何在 DataColumn.Expression 中使用 IF/ELSE 或 CASE?

    我有一个包含 1 列的表 状态 我想添加另一列名为 Action 的列 其值如下 如果 Status Yes 则 Action Go 否则 Action Stop 我使用以下代码添加到 操作 列中 但它不起作用 myDataTable Co
  • 在 C/C++ 中获得正模数的最快方法

    通常在我的内部循环中 我需要以 环绕 方式索引数组 因此 例如 如果数组大小为 100 并且我的代码要求元素 2 则应该给它元素 98 高级语言 例如 Python 可以简单地使用my array index array size 但由于某
  • 为什么在创建矩阵类时使用向量不好?

    对于我的矩阵类 我做了 template
  • 如何在 C# / .NET 中创建内存泄漏[重复]

    这个问题在这里已经有答案了 可能的重复 托管代码中是否可能存在内存泄漏 特别是 C 3 0 https stackoverflow com questions 6436620 is it possible to have a memory
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • VS 程序在调试模式下崩溃,但在发布模式下不崩溃?

    我正在 VS 2012 中运行以下程序来尝试 Thrust 函数查找 include cuda runtime h include device launch parameters h include
  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • 找不到 assimp-vc140-mt.dll ASSIMP

    我已经从以下位置下载了 Assimp 项目http assimp sourceforge net main downloads html http assimp sourceforge net main downloads html Ass
  • 动态生成的控件 ID 返回为 NULL

    我可以在 Page PreInit 函数中创建动态控件 如何检索控件及其 ID 我的 C 代码用于创建动态控件之一 var btn new WebForms Button btn Text btn ID Addmore btn Click
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • 单例模式和 std::unique_ptr

    std unique ptr唯一地控制它指向的对象 因此不使用引用计数 单例确保利用引用计数只能创建一个对象 那么会std unique ptr与单例执行相同 单例确保只有一个实例属于一种类型 A unique ptr确保只有一个智能指针到
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 运行选定的代码生成器时出错:“未将对象引用设置到对象的实例。”错误?

    我已经尝试了所有解决方案 例如修复 VS 2013 但没有用 当您通过右键单击控制器文件夹来创建控制器并添加控制器时 然后右键单击新创建的控制器的操作并选择添加视图 当我尝试创建视图时 就会发生这种情况 它不是一个新项目 而是一个现有项目
  • 如何通过 JsonConvert.DeserializeObject 在动态 JSON 中使用 null 条件运算符

    我正在使用 Newtonsoft 反序列化已知的 JSON 对象并从中检索一些值 如果存在 关键在于对象结构可能会不断变化 因此我使用动态来遍历结构并检索值 由于对象结构不断变化 我使用 null 条件运算符来遍历 JSON 代码看起来像这
  • 将标量添加到特征矩阵(向量)

    我刚刚开始使用 Eigen 库 无法理解如何向所有矩阵成员添加标量值 假设我有一个矩阵 Eigen Matrix3Xf mtx Eigen Matrix3Xf Ones 3 4 mtx mtx 1 main cxx 104 13 error
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • C++ Streambuf 方法可以抛出异常吗?

    我正在尝试找到一种方法来获取读取或写入流的字符数 即使存在错误并且读 写结束时间较短 该方法也是可靠的 我正在做这样的事情 return stream rdbuf gt sputn buffer buffer size 但如果streamb
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte

随机推荐

  • VBA,如果字符串包含某个字母

    我通常不与VBA我无法弄清楚这一点 我试图确定电子表格上的字符串中是否包含某个字母 Private Sub CommandButton1 Click Dim myString As String RowCount WorksheetFunc
  • 为什么 Chrome 无法检查 Docker 容器中的 NodeJS 代码?

    我尝试在 Docker 容器内启动简单的 NodeJS 服务器并使用 chrome inspect 或 WebStorm 对其进行调试 调试端口9229已绑定但检查不起作用 另一方面 当我在没有 docker 的情况下运行相同的代码时 我可
  • 使用 jsPDF rtl 支持将 Html 转为 pdf

    我正在尝试使用 Angular 5 将 html 转换为 pdf这是我的代码 import as jsPDF from jspdf htmlToPdf var doc new jsPDF var specialElementHandlers
  • 从多对多关系续集中选择

    我尝试从一个表中选择并引用另一个表 我在餐桌食品和餐桌配料之间存在多对多的关系 食品型号 module exports function sequelize DataTypes return sequelize define food id
  • 多次读取 Option<&mut T> 的引用

    我有一个Option lt mut T gt 并且想要多次访问包含的引用 如下所示 fn f a Option lt mut i32 gt if let Some x a x 6 if let Some x a x 7 fn main le
  • 如何使用PDF.JS显示整个PDF(不仅仅是一页)?

    我创建了这个演示 http polishwords com pl dev pdfjs test html http polishwords com pl dev pdfjs test html 它显示一页 我想显示所有页面 一个在另一个下
  • 长时间运行的 Android“服务”

    我有一个 Android 应用程序 其中 活动 会触发在后台运行的长时间运行的操作 这些操作完成后与活动交互 我正在开发一个处理活动 长时间运行任务耦合的组件 负责销毁和重新创建活动 现在该组件已作为 Android 服务实现 活动调用bi
  • 字谜索引计算[重复]

    这个问题在这里已经有答案了 给定一个由字符 A Z 组成的最长 25 个字符的输入字符串 输出其在输入字符串所有可能的字谜词按字母顺序排序的列表中的索引 输入字符串不区分大小写 输入的字符可以重复 该应用程序必须在 500 毫秒内完成 并且
  • 通过 JavaScript 进行 Base64URL 解码?

    所以我很困惑 我知道有很多用于 JS 的 Base64 编码器 解码器 但没有用于修改后的 以及 Facebook 喜欢的 Base64URL 变体 到目前为止 在 stackoverflow 上的搜索已经一无所获 是的 我可以使用 PHP
  • 是否有相当于 ChronoUnit. Between 的函数返回分数而不是整数?

    方法是这样的ChronoUnit HOURS between start end 回报long所以我无法从那里得到分数 是否有另一种方法 方法可以返回分数 整个要点ChronoUnit HOURS between start end 是获取
  • New-Object 在 PowerShell 2 上失败,并出现“找不到构造函数”错误

    我有以下脚本在 PowerShell 5 上运行良好 NetworkChange New Object System Net NetworkInformation networkchange Register ObjectEvent Inp
  • Android 2.2+ 中的拨出电话已应答状态

    在我的应用程序中 我发起了拨出呼叫 并使用 PhoneStateListener 来了解呼叫状态 每当我开始打电话时 电话状态都是TelephonyManager CALL STATE OFFHOOK 当呼叫接收者接听电话时 我没有收到电话
  • 查找列中的更改索引

    有没有办法用 R 找到列中因子变化的索引 例如 x lt c aaa aaa aaa bbb bbb ccc ddd 将返回 3 5 6 您可以尝试比较移位向量 例如 which x 1 x length x 1 3 5 6 这对角色都有效
  • 将列值收集到数组中

    我在开发时经常遇到的模式之一是尝试将对象集合中的列 属性值收集到数组中 例如 ids array foreach documents as document ids document gt name 我是唯一遇到这种情况的人吗 PHP 有没
  • 将 -std=gnu++11 编译器标志添加到 QMake

    我正在 Windows 上使用 mingw32 和 g 4 9 3 编译 qt5 7 执行configure bat时 我收到此错误 C qt everywhere opensource src 5 7 0 configure bat pr
  • openejb嵌入式容器找不到persistence.xml

    我在嵌入模式下使用 openEjb 来测试无状态会话 bean 它有一个注入的 EntityManager 但是 当我运行测试时 它失败了 因为它无法初始化应用程序 当我看到控制台时 我还可以看到与无法找到 persistence xml
  • 如何让 grep 在一行中的第一个匹配处停止?

    嗯 我有一个文件 test txt test txt odsdsdoddf112 test1 for grep dad23392eeedJ test2 for grep Hello World test garbage 我想提取后面有空格的
  • TortoiseSVN 在 Windows 7 中的哪里保存密码缓存文件? [复制]

    这个问题在这里已经有答案了 TortoiseSVN 在 Windows 7 中的哪里保存密码缓存文件 I found c users USERNAME AppData TSVNCache目录 但它是空的 In c Users USERNAM
  • 在 Android 中使用 Intent 在 Activity 中传递 Android 位图数据

    我有一个名为的位图变量bmp在活动 1 中 我想将位图发送到活动 2 以下是我用来传递它的意图的代码 Intent in1 new Intent this Activity2 class in1 putExtra image bmp sta
  • 指针向量上的 std::find()

    我想搜索一个指针向量并将指针与int 我最初的想法是使用std find 但我意识到我无法将指针与int Example if std find myvector begin myvector end 0 myvector end do s