Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我如何定义一个find函数?

我如何定义一个find函数?
EN

Stack Overflow用户
提问于 2012-12-05 23:38:38
回答 4查看 351关注 0票数 4

我试图为我的向量定义一个find函数,因为这个向量包含多个数据;它是一个结构的向量

我正在输入一个ID,并尝试在我的表中搜索该ID并找到它的索引(如果该ID已经存在)

所以我在这里有声明:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vector<Employee> Table;
vector<Employee>::iterator It;
vector<Employee>::iterator find_It;

//Table has these values
//Table.ID, Table.ch1, Table.ch2

我试着在这里找到ID:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cin >> update_ID;
find_It = find(Table.begin(), Table.end(), update_ID);

有没有办法用变量update_ID进行查找呢?

我试过这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
find_It = find(Table.begin(), Table.end(), (*It).update_ID;

但是很明显,我的向量员工没有名为update_ID的数据成员

我正在考虑做的另一个选择是创建我自己的find函数,我对如何定义它有点困惑

我想返回ID的索引,其中Table.ID = update_ID

我应该放什么作为返回类型和值参数?是吗

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
returntype find( Iterator, Iterator, update ID)
{ 
    for (vector<Employee>::iterator myit = Table.begin(), Table.end(), myit++)
    {
        if update_ID == Table.ID
        {
            return myit;
        }
    }
    return myit
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-05 23:43:44

a set of find functions附带了C++标准库。

您正在寻找find_if,它接受指定比较的函数器。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// a functor taking the update_ID you 
// are looking for as an argument in the constructor
struct myfind {
  myfind(int needle) : needle(needle) {}

  int needle;
  bool operator()(const Employee& x) {
    return x.ID == needle;
  }
};

// use as
int update_ID = 23;
std::find_if(begin(Table), end(Table), myfind(update_ID));

您还可以使用lambda:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int id;
std::find_if(begin(Table), end(Table),
             [=](const Employee& x) { return x.update_ID == id; });
票数 5
EN

Stack Overflow用户

发布于 2012-12-05 23:43:43

最明显的方法是将std::find_if()与谓词一起使用。使用C++ 2011表示法可能如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
std::vector<Employee>::iterator it(std::find_if(Table.begin(), Table.end(),
                                   [=](Employee const& e) { return e.ID == update_ID; });

如果您不能使用C++ 2011,您可以为谓词创建一个函数对象,或者为update_ID使用一个带有绑定参数的合适函数。

票数 3
EN

Stack Overflow用户

发布于 2012-12-06 00:05:09

您可以使用std::find_if()了解它是如何工作的

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13734511

复制
相关文章
JAVA 中异常处理的最佳实践
前言 异常处理的问题之一是知道何时以及如何去使用它。我会讨论一些异常处理的最佳实践,也会总结最近在异常处理上的一些争论。 作为程序员,我们想要写高质量的能够解决问题的代码。但是,异常经常是伴随着代码产生的副作用。没有人喜欢副作用,因此我们会试图用自己的方式来解决这个问题。我看过不少的程序用下面的方法应对异常: public void consumeAndForgetAllExceptions(){ try { ...some code that throws exceptions
前端教程
2018/03/05
1.7K0
JAVA 中异常处理的最佳实践
Java 中处理 Exception 的最佳实践
在Java中处理异常并不是一个简单的事情。不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。这也是绝大多数开发团队都会制定一些规则来规范对异常的处理的原因。而团队之间的这些规范往往是截然不同的。本文给出几个被很多团队使用的异常处理最佳实践。
Java编程指南
2019/08/02
4730
Java中异常处理的9个最佳实践
在Java中进行处理异常并非是一件容易的事,初学者经常陷入困惑,甚至有经验的开发者也需要认真研讨哪些异常需要处理,哪些异常需要向上抛出。导致每个开发团队都会自己定制一套特有的异常处理规则,这使得新加入团队的成员都经历一段痛苦的适应期。
码农神说
2020/08/05
6120
Java中异常处理的9个最佳实践
Java异常处理最佳实践
在Java中处理异常并不是一个简单的事情。不仅仅初学者很难理解,即使一些有经验的开发者也需要花费Java
Java架构师必看
2021/07/15
7530
Java 中的异常类型、异常处理机制、最佳实践
Java 异常是一种在程序运行时可能出现的错误或异常状况。它们可以由多种因素引起,例如无效输入、网络连接失败或系统资源不足等。
网络技术联盟站
2023/06/04
6210
Java 编程中关于异常处理的 10 个最佳实践
异常处理是Java 开发中的一个重要部分。它是关乎每个应用的一个非功能性需求,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等。Java提供了几个异常处理特性,以try,catch 和 finally 关键字的形式内建于语言自身之中。Java 编程语言也允许你创建新的异常,并通过使用 throw 和 throws关键字抛出它们。事实上,在Java编程中,Java的异常处理不单单是知道语法这么简单,它必须遵循标准的JDK库,和几个处理错误和异常的开源代码。这里我们将讨论一些关于异常处理的Java 最佳实践。
Java技术栈
2018/07/30
4920
Java 处理 Exception 的 9 个最佳实践!
不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。
趣学程序-shaofeer
2020/05/18
4360
9种处理Java异常的最佳实践
Java中的异常处理是个不简单的话题。初学者很难理解,即使是经验丰富的开发人员也可以花费数小时来讨论如何以及应该抛出或处理哪些异常。
田维常
2021/03/16
4650
Java 处理 Exception 的 9 个最佳实践!
在Java中处理异常并不是一个简单的事情。不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。这也是绝大多数开发团队都会制定一些规则来规范对异常的处理的原因。而团队之间的这些规范往往是截然不同的。
二哥聊运营工具
2021/12/17
2690
Java 处理 Exception 的 9 个最佳实践!
在Java中处理异常并不是一个简单的事情。不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。这也是绝大多数开发团队都会制定一些规则来规范对异常的处理的原因。而团队之间的这些规范往往是截然不同的。
用户1516716
2020/05/28
3790
处理Java异常的10个最佳实践
写完代码后请一定要检查下,代码中千万不要有printStackTrace()。因为printStackTrace()只会在控制台上输出错误的堆栈信息,他只适合于用来代码调试。
Java3y
2020/12/31
1.3K0
Java 异常处理的 9 个最佳实践
在 Java 中,异常处理是个很麻烦的事情。初学者觉得它很难理解,甚至是经验丰富的开发者也要花费很长时间决定异常是要处理掉和抛出。 所以很多开发团队约定一些原则处理异常。如果你是一个团队的新成员,你可能会很惊讶,因为他们约定的规则可能和你以前使用的规则不一样。 不过,有很多最佳实践的规则,被大部分团队接受。这里有 9 大重要的约定,帮助你学习或者改进异常处理。 1、在 Finally 清理资源或者使用 Try-With-Resource 特性 大部分情况下,在 try 代码块中使用资源后需要关闭资源,例如
前端教程
2018/03/05
8130
Java 异常处理的 9 个最佳实践
Java 异常处理的 9 个最佳实践
在 Java 中,异常处理是个很麻烦的事情。初学者觉得它很难理解,甚至是经验丰富的开发者也要花费很长时间决定异常是要处理掉和抛出。
程序猿DD
2019/05/24
7770
处理Java异常的9个最佳实践
Java中的异常处理不是一个简单的主题。初学者发现它很难理解,甚至有经验的开发者也可以花几个小时讨论如何以及应该抛出或处理哪些异常。
银河1号
2019/04/12
7730
Java中多线程的最佳实践
多线程是一种操作系统在同一时间点内存中有多个线程的能力,并产生所有这些线程都在并发执行的错觉。
灬沙师弟
2023/03/20
9740
Java中多线程的最佳实践
【译】11条Java异常处理的最佳实践
在之前关于Java异常的文章中,已经探讨过suppressed exceptions和Java Exceptions Tutorial 两个方面的内容。要想在实际项目中正确处理Java异常,你应该熟练掌握一些Java异常处理的最佳实践。
阿杜
2018/08/06
4260
【译】11条Java异常处理的最佳实践
处理 Java 异常的 10 个最佳实践「译文」
原文:https://www.javacodegeeks.com/10-best-practices-to-handle-java-exceptions.html
张小驰出没
2022/04/14
4460
Go中的错误和异常处理最佳实践
在Go中,错误是一种表示程序错误状态。包含了在程序在运行时、编译时的状态信息。一般我们在编写Go代码中,都会碰到如下的处理方式。
兔云小新LM
2022/11/21
9630
React Server Component 在 Shopify 中的最佳实践
Shopify 是国外的一个允许客户自由搭建商城的 nocode 产品,工程师 Cathryn Griffiths 分享了他在 Shopify 中实用 React Server Component 的最佳实践。
ssh_晨曦时梦见兮
2022/03/07
2.4K0
React Server Component 在 Shopify 中的最佳实践
在 Java 中如何优雅地判空
  作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢NullPointerException。
芋道源码
2019/11/21
2.4K0

相似问题

Python相当于select * from a where account_id in (select account_id from b)

223

SELECT in cassandra where id != null

20

标准SELECT/FROM/WHERE/IN查询的Cassandra模式

20

实体框架- Select * from Entities where Id = (select max(Id) from Entities)

41

相当于Excel上的SELECT FROM WHERE

153
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文