是否有将类转换为字符串的标准方法

2024-04-05

在Java中,标准是定义方法toString()返回类的字符串表示形式。除了超载之外operator<<,C++中有这样的标准吗?我知道有std::to_string()方法来获取数字的字符串表示形式。 C++ 标准是否谈到定义方法to_string()为类提供类似的目的,还是 C++ 程序员遵循的常见做法?


做这种事情的标准方法是提供一个插入运算符这样就可以将对象插入到流中——流可以是任何类型的流,例如字符串流。

如果您愿意,您还可以提供一个转换为字符串的方法(对插入运算符有用),并且如果您发现转换可以接受,您可以提供“to string”运算符。

这是我的标准“点”类示例:

template <typename T>
struct point
{
  T x;
  T y;
  point(): x(), y() { }
  point( T x, T y ): x(x), y(y) { }
};

template <typename T>
std::ostream& operator << ( std::ostream& outs, const point <T> & p )
{
  return outs << "(" << p.x << "," << p.y << ")";
}

我还倾向于保留一个方便的函数来将事物转换为字符串:

template <typename T>
std::string to_string( const T& value )
{
  std::ostringstream ss;
  ss << value;
  return ss.str();
}

现在我可以轻松使用它:

int main()
{
  point p (2,-7);

  std::cout << "I have a point at " << p << ".\n";

  my_fn_which_takes_a_string( to_string(p) );

你会发现Boost Lexical_cast 库 http://www.boost.org/doc/libs/release/doc/html/boost_lexical_cast.html也是为了这种事情而设计的。

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有将类转换为字符串的标准方法 的相关文章

  • 在列表中查找匹配项的最简洁方法

    在列表中查找内容的最佳方式是什么 我知道 LINQ 有一些不错的技巧 但我们也可以获取有关 C 2 0 的建议 让我们对这个常见的代码模式进行最佳重构 目前我使用这样的代码 mObjList is a List
  • ASP.NET 会员电子邮件验证

    尝试基于 C 创建电子邮件验证本文 https web archive org web 20211020153319 https www 4guysfromrolla com articles 062508 1 aspx 我创建了一个 ja
  • 将列表数组中的值绑定到列表框

    任何机构都可以给出一个简短的示例 用于将列表数组中的值绑定到 c net 中的列表框 这取决于您的列表数组的情况 让我们从一个简单的示例开始 List
  • 在 C++ 中,当我将值传递给函数时,它是否总是转换为适当的类型?

    如果我有一个像这样的函数void func size t x 我称该函数为func 5 5 立即转换为size t类型 这通常适用于所有类型吗 我问这个问题是因为我发誓我见过人们编写代码 他们做类似的事情func 5 0 将 5 作为双精度
  • 是否可以通过引用以基类作为参数的函数来传递派生类

    假设我们有一个抽象基类IBase使用纯虚方法 接口 然后我们推导出CFoo CFoo2来自基类 我们有一个知道如何使用 IBase 的函数 Foo IBase input 这些情况下通常的场景是这样的 IBase ptr static ca
  • 为什么不能使用initializer_list来初始化unique_ptr的向量? [复制]

    这个问题在这里已经有答案了 我想知道为什么initializer list 不能与unique ptr 一起使用 std vector
  • 有没有办法让我的程序用更少的代码运行?

    我为学校作业编写了以下代码 它编译并打印所有正确的消息 但出于我自己的好奇心 我想知道我的代码是否可以缩短并且仍然有效 我尝试了 signal 而不是 sigaction 但我听说 sigaction 比 signal 更受青睐 此外 此任
  • ASP.NET Core 中 AsNoTracking 的模拟或更好的解决方法

    您如何模拟 AsNoTracking 或者是否有更好的解决方法来解决此问题 Example public class MyContext MyContextBase Constructor public MyContext DbContex
  • MSVC10 /MP 在项目中跨文件夹构建非多核

    我希望有人指出我们所遇到的错误或解决方法 使用 MP 编译项目时 似乎仅同时编译同一文件夹中的文件 我使用进程资源管理器来滑动命令行并确认行为 项目过滤器似乎对同时编译的内容没有影响 项目结构disk Folder project vcxp
  • 使用 pthread_cond_signal 优雅地终止线程被证明是有问题的

    我需要发射一堆线程 并希望优雅地将它们拉下来 我正在尝试使用pthread cond signal pthread cond wait实现这一目标 但遇到了问题 这是我的代码 首先是thread main static void thrma
  • 是否可以获取指向装箱非托管值类型的指针?

    是否可以获取指向装箱非托管值类型的指针 而无需编写对每个支持的类型进行强制转换的大型 switch 语句 就像是 object val Contains a boxed unmanaged value such as int long by
  • memccpy 返回比 src 起始地址更低的内存地址

    我有一个学校项目 我必须重新编码memccpy 功能 我使用 2 个程序来检查我的代码是否正常工作 第一个是只有一个主程序的小程序 第二个程序是另一个学生开发的 可以找到here https github com yyang42 mouli
  • 在 OpenGL 中使用不同的着色器程序?

    我必须在 OpenGL 中针对不同的对象使用两个不同的着色器程序 我发现我必须使用glUseProgram 在不同的着色器程序之间切换 但对此没有太多信息 鉴于我有两个用于不同对象的不同着色器程序 如何为每个着色器程序生成和绑定 VAO 和
  • 如何将对 System.Data.DataSetExtensions 的引用添加到网站 ascx.cs 文件?

    我们正在处理一个网站项目并尝试参考System Data DataSetExtensions 使用 Web 应用程序会更好 不过 技术主管有她的理由 这是我们尝试过的 找到装配路径 打开 Visual Studio 命令提示符并运行sn e
  • 验证域用户凭据

    我需要一种方法来验证 Windows 上本机 C 的用户 密码对 输入的是用户名和密码 用户可以是 DOMAIN user 格式 基本上我需要编写一个函数 如果用户 密码是有效的本地帐户 则返回 true 第1部分 如果用户 密码在给定的域
  • C# 或 Windows 相当于 OS X 的 Core Data?

    我迟到了 现在才开始在 OS X Cocoa 中使用 Core Data 它令人难以置信 并且确实改变了我看待事物的方式 C 或现代 Windows 框架中是否有等效的技术 即拥有可免费保存 数据管理 删除 搜索的托管数据类型 还想知道Li
  • 更改成员资格、角色等的默认连接字符串

    默认情况下 我的网络应用程序似乎正在使用LocalSqlServer作为用于任何应用程序服务 例如成员资格 角色 身份验证 等 的连接字符串 有什么方法可以更改默认连接字符串应该是什么 默认值是 LocalSqlServer 似乎很随意 我
  • 来自资源中 ImageSource 的 System.Drawing.Image

    我的问题与这个非常相似 wpf图像资源以及运行时在wpf控件中更改图像 https stackoverflow com questions 940592 wpf image resources and changing image in w
  • 使texture2D在运行时/脚本Unity3D中可读[重复]

    这个问题在这里已经有答案了 我有一个插件 可以让我访问 Android 手机图库中的图片 这给了我一个Texture2D类型的纹理 然后我想使用 GetPixels 函数对其进行编辑 但默认情况下它未设置为可读 如何使纹理可读 以便我可以在
  • File.Move 的原子性

    我想将目录中的文件重命名为原子事务 该文件不会更改目录 该路径作为 NTFS 文件系统的 UNC 路径提供 可能位于服务器 03 或 08 上 File Move 对于这些目的来说是原子的吗 例如 它要么成功完成 要么失败 以使原始文件仍然

随机推荐

  • Array(n) 和 Array(n).fill 之间的区别?

    我注意到如果我这样做 Array n map gt console log test 我什么也没打印出来 但是如果我这样做 Array n fill map gt console log test I get test打印出来n times
  • C 和 C++ 中关于“^=”运算符的区别

    我想交换指向的值int x and by int y使用表达式 x y x y 好吧 我知道这个表达很尴尬 我只是想知道其中的区别 无意冒犯 这在 C 中有效 但在 C 中失败 但是 如果我将其分为三个部分 如下所示 x y y x x y
  • 在c#中通过设备名称获取蓝牙设备的COM端口

    我用 C 编写一些代码来获取映射具有特定名称的蓝牙设备的 COM 端口 我尝试了几种与列出的类似的解决方案here https stackoverflow com questions 25908734 get name of bluetoo
  • 如何将 blueimp-file-upload 与 webpack 一起使用?

    我在我的网站中使用 blueimp file upload 并使用 webpack 来组织我的 js 代码 我从 NPM 安装了 blueimp file upload 和 jquery ui widget npm install save
  • 预处理器是否在`operator""_name`中定义替换

    考虑 Aykhan Hagverdili 提供的以下示例 include
  • 如何防止某些 Jenkins 作业同时运行?

    我有几个使用共享资源 数据库 的作业 有时会在作业碰巧同时触发的 罕见 事件中导致构建失败 例如 给定作业 A 到 E 是否有任何方法可以指定 A 和 C永远不应该同时运行 除了上述资源之外 构建彼此独立 例如不存在上游 下游关系 一种 暴
  • 是否可以在表之间创建关系?

    Bigquery 看起来很棒 我有一个数据库类型 ETL 其中我的方案在实体之间有多种关系 我想知道是否有办法在它们之间建立关系 或者是否可以在数据集之间以某种方式模拟它们 请原谅我的英语 这不是我的语言 而且我不太了解它 您无法在 Big
  • 使用批处理脚本连接相同名称的内容并将每个内容的值相加

    几年前 Mofi 帮助我创造了一个令人惊叹的 bat脚本对许多内容的值进行求和 还可以将其名称连接起来并求出它们的总和 请检查旧答案 重点关注 Mofi 的答案 如何使用批处理文件对文本进行排序和求和时忽略第一和第三数据列 https st
  • java:何时调用此方法:getTableCellRendererComponent?

    为了设置特定表格单元格的颜色 我应该创建一个自定义 TableCellRenderer 它具有以下方法 getTableCellRendererComponent 什么时候调用这个方法 getTableCellRendererCompone
  • 尝试使用外部域的用户名更改本地 Azure AD B2C 用户的密码时出现错误 AADSTS50034

    我正在为我的 Angular 6 前端应用程序开发 Azure AD B2C 并使用 Microsoft Graph API 来更改登录用户的密码 我正在得到access token使用授权代码流程 当用户有这样的用户名时它工作正常 ema
  • iOS 中拉动刷新跳转

    当我慢慢下拉刷新时 我看到 UIActivityIndi cator 圆圈在开始刷新之前慢慢变得更加完整 就在圆圈完成并且刷新实际触发之前 内容会向下跳跃 急速跳动 然后圆圈开始旋转 我只有在慢慢拉下时才会注意到这一点 我正在使用拉动来刷新
  • 使用 parse_dates 解析 pandas 中多列的日期

    我有一个文本文件 其中月 日和年位于不同的列中 我想将它们合并为一列并以日期格式隐藏它 我正在尝试在 pandas read table 中使用 parce dates 选项 但它不起作用并给我错误file structure not ye
  • Dokku 在尝试 git Push 时要求输入密码

    我在数字海洋上创建了一个带有 ubuntu 和 dokku 图像的水滴 我已关注this https www digitalocean com community articles how to use the digitalocean d
  • 在 Rails 应用程序中输出 JSON

    好的 Rails 3 新开发人员在这里 我希望我的 jquery 能够从项目的 Rails 3 应用程序获取 json 对象 这是我的控制器 def yourprojects projects Projects all current us
  • 使用 QNetworkAccessManager 支持 https。运行时遇到 SslErrors

    我正在使用 QNetworkAccessManager 执行 https get 操作 我在运行时遇到 SSLErrors 经过一段时间的研究 我能够在安装 OpenSSL 后运行我的程序 我需要两个 dll libeay32 dll 和
  • 将 URI 路径传递给 JAX-RS 提供者

    我最近实现了 Jersey JAX RS Rest 服务 我创建了一个 JIBX 提供程序 它允许在 XML 和 Java 类型之间进行解组和编组 我还想通过在 URL 路径中指定版本来对我的服务进行版本控制 版本控制将包括用于编组和解组
  • 将 iPhone 时间与服务器同步的最佳方法

    我有一个客户端服务器模型 其中服务器将发送一些带有日期参数的数据 iPhone 需要渲染它 服务器和 iPhone 将驻留在不同的时区 所以我需要同步两者的时间 假设用户在 07 18 2011 04 45 EDT 服务器时间 完成了一些活
  • XCloseDisplay 返回什么?

    我从各种文档中可以看到XCloseDisplay返回一个整数 我怀疑这是一个错误代码 我应该用这个值做什么 是错误代码吗 如果是这样我该如何处理该错误 我查看了源代码 lib X11 ClDisplay c It says return 0
  • iOS 8 Xcode 6.1 EXC_BREAKPOINT (SIGTRAP) 仅适用于捆绑应用程序

    我的应用程序工作正常 直到我升级到 OSX 10 10 Yosemite 和 Xcode 6 1 现在 每当我捆绑应用程序进行分发时 我都会在应用程序的特定位置收到一个 sigtrap 在模拟器中或者如果我将应用程序直接加载到手机上 则不会
  • 是否有将类转换为字符串的标准方法

    在Java中 标准是定义方法toString 返回类的字符串表示形式 除了超载之外operator lt lt C 中有这样的标准吗 我知道有std to string 方法来获取数字的字符串表示形式 C 标准是否谈到定义方法to stri