草庐IT

find_stuff

全部标签

c++ - 如何模拟不存在的 find_first_not_of 函数?

std::basic_string类模板有成员函数find_first_of和find_first_not_of。然而,header只包含一个通用的find_first_of。问题1:是缺席std::find_first_not_of(Iter1first1,Iter1last1,Iter2first2,Iter2last2)只是一个疏忽(例如copy_if)还是故意省略,因为该行为可以通过另一个标准函数实现?当然我可以自己写find_first_not_of,但是问题2:中是否有现成的解决方法??例如,缺少copy_if由remove_copy_if的存在补偿提前致谢

c++ - QMap::contains() VS QMap::find()

我经常看到这样的代码:if(myQMap.contains("mykey")){myValue=myQMap["mykey"];}理论上在QMap中执行两次查找。我的第一react是它应该被下面的替换,它只执行一次查找并且应该快两倍:autoit=myQMap.find("mykey");if(it!=myQMap.end()){myValue=it.value();}我想知道QMap是否会自动为我进行优化?换句话说,我想知道QMap是否保存了用QMap::contains()找到的最后一个元素的位置,并在执行下一次查找之前首先检查它? 最佳答案

c++ - 优化的 argmin : an effective way to find an item minimizing a function

假设我有一个项目集合和对它们的评分函数:structItem{/*somedata*/};std::vectoritems;doublescore(Item);我想从该集合中找到分数最低的项目。一个简单的写法是:constautoargmin=std::min_element(begin(items),end(items),[](Itema,Itemb){returnscore(a)但如果score是一个计算量很大的函数,std::min_element的事实实际上在某些项目上多次调用它可能令人担忧。这是预料之中的,因为编译器无法猜测score是purefunction.我如何找到ar

c++ - 在 `std::search` 上使用 `string::find`

我有一个关于使用std::search与string::find处理字符串的问题。我知道使用特定于类的成员函数算法通常比标准库算法更好,因为它可以基于类进行优化,但我想知道为了一致性,使用std是否合理::search使用迭代器而不是string::find使用索引。做那样的事情对我来说是一种罪过还是我应该坚持使用string::find?两者在性能或风格方面是否有任何巨大优势? 最佳答案 现在(2017年4月27日),至少GCCslibstdc++(默认情况下也被clang使用)实现了std::string::find线性搜索,因

c++ - 为什么 `std::string` 有一个 `find` 成员函数?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。为什么std::string有一个find成员函数,而std::vector和friend没有?在字符串上使用std::find有什么问题吗?

c++ - 为什么这个 std::find 不能比较这些对象

通常当我执行std::find时,我会将谓词作为第三个参数,但这次我想我会做不同的,我不明白为什么它不起作用。#include#include#includestructRenderJob{RenderJob(){};intrenderJob_ID;booloperator==(RenderJob&rhs){returnrhs.renderJob_ID==this->renderJob_ID;}};intmain(){RenderJobfoo;RenderJobfoo2;foo==foo2;//Worksstd::vectorrenderJobs;std::find(renderJob

c++ - std::map: find(key)->second 比 [] 运算符快吗?

std::mapx;x[5]=1.2;doubley=x[5];doublez=x.find(5)->second;这2个分配中的一个会比另一个执行得更快吗?(假设请求的键始终存在于映射中)在执行x.find(5)->second时,是否存在与迭代器取消引用相关的任何开销?编辑:感谢您的回复。在我的特定函数中,既然我知道它并不慢,我可能会使用x.find(5)->second因为我需要标记我的函数const(map是一个成员变量)并且[]运算符显然不允许这样做(因为它可能会修改map,因为缺少一个键)。 最佳答案 这没有回答您的问题

c++ - 错误 C2039 : 'find' : is not a member of 'std'

我刚遇到一个奇怪的错误,说find不是std的成员。errorC2039:'find':isnotamemberof'std'errorC3861:'find':identifiernotfound基本上,我想查找是否可以在vector中找到一个字符串知道为什么会这样吗?代码帮助告诉我在std中有find方法。这基本上就是我所做的:#include"OperatorUtil.h"#include#include#include#include#includeusingnamespacesaeConfig;namespaceoperatorUtil{boolisIn(constFilte

windows - 在 Windows 8.1 : Trying to override Windows/System32/find. exe 上为 CMD 设置系统路径

我试图覆盖windowsfind命令,以便我可以调用find的另一个实现。另一个实现由MSYS提供,位于C:\MinGW\msys\1.0\bin。在Windows7上,我可以打开一个CMD,然后运行:SETPATH=C:\MinGW\msys\1.0\bin;%PATH%由于在C:\Windows\System32\路径之前添加了MSYS路径前缀,因此当在Windows7上的CMD中调用find时,将执行MSYS版本。该命令不适用于Windows8.1。当我在Windows8.1的CMD中调用find时,无论我做什么,它都默认为Windows实现。有没有办法在Windows8.1上覆

node.js - Windows 上 "Cannot find module"上的 node-gyp 错误

我正在尝试构建Atom。当我运行npminstall时,出现错误:Error:Cannotfindmodule'C:\ProgramFiles(x86)\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js'我在Windows上。我该如何解决这个问题? 最佳答案 2020年更新:评论中有报告称此方法(在2014年绝对有效)不再有效。请在删除任何内容之前备份此文件夹。这意味着不知何故,node-gyp模块已损坏、卸载或以其他方式搞砸了。这可以通过两个简单的步骤解决(