问题标签 [remove-if]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 将 remove_if 变成 remove_not_if
如何反转谓词的返回值,并删除返回 false 而不是 true 的元素?
这是我的代码:
(请忽略缺少擦除)
使用 FindName 一个简单的函子:
我想要类似的东西:
还没有使用 c++0x,所以遗憾的是不允许使用 lambda。我希望有一个比编写 NotFindName 函子更好的解决方案。
c++ - 在 C++ 中,从列表中删除一个对象
我正在编写一个或多或少像这样的程序:
我需要写什么而不是 THING_IS_ME?
换句话说,我使用全局 STL 列表作为事物的集合。在某些时候,列表中的对象认识到它是多余的,并希望 a) 将自己从列表中删除,并且 b) 将自己破坏。
我该怎么做呢?
我已经有 15 年没有写过 C++ 了,对这里的这个页面有点困惑:http ://www.cplusplus.com/reference/algorithm/remove_if/
这些谓词是什么?C++现在有高阶函数吗?
c++ - std::remove_if - lambda,不从集合中删除任何内容
好吧,我想我在这里犯了一个愚蠢的错误。我有一个 DisplayDevice3d 列表,每个 DisplayDevice3d 都包含一个 DisplayMode3d 列表。我想从 DisplayDevice3d 列表中删除没有任何 DisplayMode3d 的所有项目。我正在尝试使用 Lambda 来做到这一点,即:
尽管在 MyDisplayDevices 中的 6 个 DisplayMode3d 中,只有 1 个在其 Modes 集合中有任何 DisplayMode3d,但没有从列表中删除任何内容。
我在这里犯了什么重大错误?
编辑:
好吧,我的错误是我应该使用 MyDisplayDevices.remove_if 而不是 std::remove_if,但是下面的答案对于使用 std::remove_if :p 是正确的。
c++ - `std::set` 有什么问题?
在另一个主题中,我试图解决这个问题。问题是从std::string
.
由于顺序并不重要,所以我s
先排序,然后使用std::unique
并最终调整大小以获得所需的结果:
那是对的!
现在我想做同样的事情,但同时我希望字符的顺序保持不变。意味着,我想要这个输出:
所以我写了这个:
这给出了这个输出:
也就是说,a
重复了,尽管其他重复消失了。代码有什么问题?
无论如何我改变了我的代码:(见评论)
输出:
问题消失了!
那么第一个解决方案有什么问题呢?
另外,如果我不使成员变量unique
引用类型,那么问题就不存在了。
std::set
函子或函子有什么问题is_repeated
?问题究竟出在哪里?
我还注意到,如果is_repeated
仿函数被复制到某个地方,那么它的每个成员也会被复制。我看不到这里的问题!
c++ - C++ 运算符 () 括号重载
我最近问了一个关于从向量中删除项目的问题。好吧,我得到的解决方案有效,但我不明白 - 我找不到任何解释它的文档。
用作:
我查看了 std::remove_if 的文档,它说只有当类重载 () 运算符时才能传递类而不是函数。什么信息都没有。
有谁知道以下链接:
-
一本包含示例/解释的书
-
或者,在线文档/教程的链接
对此的帮助将不胜感激。我不喜欢在我的软件中添加代码,除非我理解它。我知道它有效,并且我(有点)熟悉运算符重载,但我不知道 () 运算符的用途。
c# - 替换/删除与正则表达式 (.NET) 不匹配的字符
我有一个正则表达式来验证一个字符串。但是现在我想删除所有与我的正则表达式不匹配的字符。
例如
关于如何使用 RegExpression 确定有效字符并删除所有其他字符的任何想法。
非常感谢
c++ - c++向量;remove_if 只删除一个值?
我应该实现一个从容器中删除一系列值的函数。所以
例如,将从容器 v 中删除任何大于 1.5 且小于 24 的值。我的函数非常适用于列表,我在其中使用:
其中 rg 检查它是否在范围内(该部分的实现不是问题,所以我不打算详细说明)。
但是,当为向量调用 eraseRange 并使用类似的方法来擦除值时,只会擦除第一个值。因此,如果我有一个数字从 1 到 10 的向量,我会调用:
只有3个被删除。
现在这通常不会成为问题,我只需使用迭代器来检查值。除了这个特定的练习,for/while/do 循环是明确禁止的……
所以问题似乎出在具有随机访问迭代器的容器上。而且我不确定要实施什么作为替代方案。帮助?
c++ - 如果使用 remove_if 并且项目是指向对象的指针,如何删除向量中的项目?
我担心通过执行以下操作会遇到内存泄漏问题:
(示例代码)
如果它是指针,擦除不会释放内存,对吗?如果我没有使用 remove_if,我可以在销毁指针之前调用 delete。在这种情况下我该怎么做?智能指针?我不想用它们重新实现所有东西,我也不想添加 boost 库。
谢谢!
c++ - 如何将 remove_if 与擦除一起使用
我想知道如何根据条件从列表中删除对象。
经过研究,这是我得到的,但它仍然不起作用!
所以我想知道如何使用remove_if
擦除。
c++ - g++字符串remove_if错误
这是代码:
在 VS 2010 中编译时,它工作得非常好。用 G++ 编译它说: