std::remove_if 和 std::isspace - 编译时错误

2024-03-04

我有以下代码:

#include <algorithm>
#include <cctype>
#include <string>

int main()
{
    std::string str;
    str.erase(std::remove_if(str.begin(), str.end(), std::isspace), str.end());
}

MSVC-11.0 编译此代码没有任何错误,但 gcc 4.7.2 给出以下错误:

main.cpp: In function ‘int main()’:
main.cpp:8:66: error: no matching function for call to ‘remove_if(std::basic_string<char>::iterator, std::basic_string<char>::iterator, <unresolved overloaded function type>)’
main.cpp:8:66: note: candidate is:
In file included from /usr/include/c++/4.7/algorithm:63:0,
                 from main.cpp:1:
/usr/include/c++/4.7/bits/stl_algo.h:1160:5: note: template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)
/usr/include/c++/4.7/bits/stl_algo.h:1160:5: note:   template argument deduction/substitution failed:
main.cpp:8:66: note:   couldn't deduce template parameter ‘_Predicate’

I found this https://stackoverflow.com/questions/15985612/remove-if-throw-error-when-trying-to-remove-white-space对此有疑问,但根据参考参数 http://en.cppreference.com/w/cpp/string/byte/isspace,此函数没有任何版本需要两个参数。我发现this https://stackoverflow.com/questions/4537930/removing-a-character-from-a-string问题也是,但根据 cppreference (是的,再次)我看到只有一个 std::isspace 函数重载。

谁是对的?我究竟做错了什么?我该如何修复它?


另一个超载std::isspace http://en.cppreference.com/w/cpp/locale/isspace,因此您需要指定使用哪一个。一种简单的方法是使用 lambda(或者如果没有 C++11 支持,则编写自己的单行函数):

std::remove_if(str.begin(), str.end(), 
               [](char c){ 
                  return std::isspace(static_cast<unsigned char>(c));
               });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

std::remove_if 和 std::isspace - 编译时错误 的相关文章

随机推荐

  • IndexedDB:承诺升级?

    刚刚开始我的第一个项目 IndexedDb 我很难尝试创建一个在第一次使用时打开和升级数据库的系统 我想使用承诺 当前角Js q https code angularjs org 1 2 22 docs api ng service 24q
  • pthread_create 不带参数?

    我想创建一个没有函数参数的线程 但我不断收到严重困扰我的错误 因为我无法让一些超级简单的东西正常工作 这是我的代码 include
  • Spring Boot 2.1 中的 DataSource bean 重写

    我已经升级到 spring boot 2 1 版本 启动应用程序时出现奇怪的异常 无法注册在类路径资源 org springframework boot autoconfigure jdbc DataSourceConfiguration
  • Eclipse 类文件元数据

    在 Visual Studio 中 我可以通过按 F12 GoToDefinition 获取没有源代码 即捆绑在 DLL 内 的类中公开的公共方法 成员的简洁列表 同样 我正在学习 Android API 在 Eclipse 中 跳转到 A
  • 如何构建弹性搜索查询以使文档字段中的每个标记都匹配?

    我需要确保字段的每个标记与用户搜索中的至少一个标记相匹配 这是为了简化起见的通用示例 Let Store Name Square Steakhouse 当用户搜索 Square 或 Steakhouse 时 构建与此文档匹配的查询很简单 此
  • 尽管需要使用语句和扩展,但无法进行函数调用

    所以我希望能够在运行时选择我的环境dotnet 一个 net core mvc 项目 从终端 我发现这个帖子 https stackoverflow com questions 37322565 dotnet run or dotnet w
  • Azure DevOps - 无法运行已安装的 dotnet 工具

    我试着跑dotnet tool install在 Azure DevOps 中并测试该工具 Locally dotnet tool install dotnetsay g dotnetsay test 无缝工作 在 Azure DevOps
  • 在R中将多边形转换为sf

    使用此处的教程 https www r spatial org r 2018 10 25 ggplot2 sf 2 html https www r spatial org r 2018 10 25 ggplot2 sf 2 html 在名
  • 对文件的操作 |获取和放置指针

    我对操作文件有一些疑问 a 我对 C 中的 get 和 put 指针有点困惑 我是否显示获取指针和放置指针的正确位置 MyFile seekg 0 ios beg MyFile seekp 10 ios end index 0 1 2 3
  • Firebase:数据库引用“on”方法未运行回调(javascript)

    我正在调整对可能不存在的数据的查询 在这种情况下 回调不会运行 据我从文档中了解到 它应该运行并且 snapshot val 应该为 null 不是吗 这里有一个精简的示例 http surfmaps eu trombone case ht
  • 有效地将 {坐标+值} 集绘制到(numpy 数组)位图

    假设我有一组像素值 例如 gt S 42 6 2 0 1 0 0 这里第 42 个条目是像素位置 6 2 呈暗红色 如何高效绘图S进入一个新的 numpy 位图数组bitmap np zeros 1024 768 3 是否有一些矢量化解决方
  • Crypto-Js 与 mcrypt 的输出不同

    我有一个 js 脚本 它加密 Blade 数据 如果我加密它 它会返回输出 JS 脚本结果 uqnOrevjCc2YCvY3uKNjzA 现在 以此答案作为比较的基础 我编写了或者更确切地说 在 PHP 中搜索了与我的 JS 脚本类似的等效
  • 如何运行烧瓶应用程序?

    我想知道启动烧瓶应用程序的正确方法 该文档显示了两个不同的命令 flask a sample run and python3 4 sample py 产生相同的结果并正确运行应用程序 两者之间有什么区别 应该使用哪一个来运行 Flask 应
  • AWS EventBridge 使用自定义详细信息安排事件?

    我正在尝试构建一个架构 其中使用多个参数集按计划触发单个 Lambda 因此 例如 如果我有三组参数并将计划设置为十分钟 我希望每十分钟执行三次 有没有办法使用自定义属性触发 EventBridge 计划事件 以便我可以将参数传递给 Lam
  • 数据表中要删除的排序箭头

    需要帮助删除数据表标题行上的排序箭头 升序和降序 然后当用户单击标题列时 将出现升序箭头 当然数据将按升序排序 MyDataTable dataTable aoColumns bSortable false null
  • R通过R_LIBS设置库路径

    我已阅读 R 常见问题解答和其他帖子 但我有点困惑 并且很高兴知道我所做的一切是否正确 在Windows中 为了修改默认的库文件夹 我创建了一个文件Renviron site并放入里面E Programs R 3 3 0 etc 该文件只有
  • 如何在 VBA for Ms Access 中擦除或重新加载 InkPicture 笔画?

    我想显示之前在 Ms Access 中的 inkPicture 对象上保存的笔画 它位于通过 ActiveX 的表单上 笔划作为 ole 对象保存在表中的 笔划 字段中 现在 执行一次就足够简单了 一行代码 我可以毫无问题地使用此代码片段
  • 计算 pyspark 中的分组中位数

    使用 pyspark 时 我希望能够计算分组值与其中值之间的差异 这可能吗 这是我编写的一些代码 它可以执行我想要的操作 除了它计算平均值的分组差异之外 另外 如果您愿意提供帮助 请随时评论我如何做得更好 from pyspark impo
  • web.config 转换在构建服务器上不起作用

    我们正在与 Team City 建立持续集成 在签到的基础上进行构建 这工作正常 但是它总是使用默认的 web config 构建 它不会随着开发环境特定的 Web 配置进行转换 在 Visual Studio 中 我为开发创建了自定义构建
  • std::remove_if 和 std::isspace - 编译时错误

    我有以下代码 include