问题标签 [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.

0 投票
3 回答
3169 浏览

c++ - 将 remove_if 变成 remove_not_if

如何反转谓词的返回值,并删除返回 false 而不是 true 的元素?

这是我的代码:

(请忽略缺少擦除)

使用 FindName 一个简单的函子:

我想要类似的东西:

还没有使用 c++0x,所以遗憾的是不允许使用 lambda。我希望有一个比编写 NotFindName 函子更好的解决方案。

0 投票
4 回答
5729 浏览

c++ - 在 C++ 中,从列表中删除一个对象

我正在编写一个或多或少像这样的程序:

我需要写什么而不是 THING_IS_ME?

换句话说,我使用全局 STL 列表作为事物的集合。在某些时候,列表中的对象认识到它是多余的,并希望 a) 将自己从列表中删除,并且 b) 将自己破坏。

我该怎么做呢?

我已经有 15 年没有写过 C++ 了,对这里的这个页面有点困惑:http ://www.cplusplus.com/reference/algorithm/remove_if/

这些谓词是什么?C++现在有高阶函数吗?

0 投票
4 回答
45587 浏览

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 是正确的。

0 投票
7 回答
1800 浏览

c++ - `std::set` 有什么问题?

另一个主题中,我试图解决这个问题。问题是从std::string.

由于顺序并不重要,所以我s先排序,然后使用std::unique并最终调整大小以获得所需的结果

那是对的!


现在我想做同样的事情,但同时我希望字符的顺序保持不变。意味着,我想要这个输出:

所以我写了这个

这给出了这个输出:

也就是说,a重复了,尽管其他重复消失了。代码有什么问题?

无论如何我改变了我的代码:(见评论)

输出:

问题消失了!

那么第一个解决方案有什么问题呢?

另外,如果我不使成员变量unique引用类型,那么问题就不存在了

std::set函子或函子有什么问题is_repeated?问题究竟出在哪里?

我还注意到,如果is_repeated仿函数被复制到某个地方,那么它的每个成员也会被复制。我看不到这里的问题!

0 投票
4 回答
24741 浏览

c++ - C++ 运算符 () 括号重载

我最近问了一个关于从向量中删除项目的问题。好吧,我得到的解决方案有效,但我不明白 - 我找不到任何解释它的文档。

用作:

我查看了 std::remove_if 的文档,它说只有当类重载 () 运算符时才能传递类而不是函数。什么信息都没有。

有谁知道以下链接:

    • 一本包含示例/解释的书
      或者,在线文档/教程的链接

  • 对此的帮助将不胜感激。我不喜欢在我的软件中添加代码,除非我理解它。我知道它有效,并且我(有点)熟悉运算符重载,但我不知道 () 运算符的用途。

    0 投票
    3 回答
    37587 浏览

    c# - 替换/删除与正则表达式 (.NET) 不匹配的字符

    我有一个正则表达式来验证一个字符串。但是现在我想删除所有与我的正则表达式不匹配的字符。

    例如

    关于如何使用 RegExpression 确定有效字符并删除所有其他字符的任何想法。

    非常感谢

    0 投票
    2 回答
    1559 浏览

    c++ - c++向量;remove_if 只删除一个值?

    我应该实现一个从容器中删除一系列值的函数。所以

    例如,将从容器 v 中删除任何大于 1.5 且小于 24 的值。我的函数非常适用于列表,我在其中使用:

    其中 rg 检查它是否在范围内(该部分的实现不是问题,所以我不打算详细说明)。

    但是,当为向量调用 eraseRange 并使用类似的方法来擦除值时,只会擦除第一个值。因此,如果我有一个数字从 1 到 10 的向量,我会调用:

    只有3个被删除。

    现在这通常不会成为问题,我只需使用迭代器来检查值。除了这个特定的练习,for/while/do 循环是明确禁止的……

    所以问题似乎出在具有随机访问迭代器的容器上。而且我不确定要实施什么作为替代方案。帮助?

    0 投票
    4 回答
    4086 浏览

    c++ - 如果使用 remove_if 并且项目是指向对象的指针,如何删除向量中的项目?

    我担心通过执行以下操作会遇到内存泄漏问题:

    (示例代码)

    如果它是指针,擦除不会释放内存,对吗?如果我没有使用 remove_if,我可以在销毁指针之前调用 delete。在这种情况下我该怎么做?智能指针?我不想用它们重新实现所有东西,我也不想添加 boost 库。

    谢谢!

    0 投票
    1 回答
    1008 浏览

    c++ - 如何将 remove_if 与擦除一起使用

    我想知道如何根据条件从列表中删除对象。

    经过研究,这是我得到的,但它仍然不起作用!

    所以我想知道如何使用remove_if擦除。

    0 投票
    4 回答
    11230 浏览

    c++ - g++字符串remove_if错误

    这是代码:

    在 VS 2010 中编译时,它工作得非常好。用 G++ 编译它说: