为啥我的 to_string() 不起作用? [复制]

Posted

技术标签:

【中文标题】为啥我的 to_string() 不起作用? [复制]【英文标题】:Why doesn't my to_string() work? [duplicate]为什么我的 to_string() 不起作用? [复制] 【发布时间】:2014-12-08 03:37:28 【问题描述】:

我正在做一个 BigInt 实现,对于我的一个构造函数,我需要接受一个 int 值并将其基本上转换为一个字符串,然后将每个字符保存到链表的一个节点中。

我的 struct Digit Node 是一个双向链表,其值为 'char digit'。我的 BigInt 类有两个私有成员变量 head 和 tail。 (指向 DigitNode 的指针)。

我收到此错误:错误:调用重载的“to_string(int&)”不明确

我的文件头:

#include <iosfwd>
#include <iostream>
#include "bigint.h"


using namespace std;

我的构造函数:

BigInt::BigInt(int i) // new value equals value of int (also a default ctor)
 
  string num = to_string(i);
  DigitNode *ptr = new DigitNode;
  DigitNode *temp;
  ptr->prev = NULL;
  this->head = ptr;
  if (num[0] == '-' || num[0] == '+') ptr->digit = num[0];
  else ptr->digit = num[0] - '0';
  for (int i = 1; num[i] != '\0'; i++)
          
      ptr->next = new DigitNode;
      temp = ptr;
      ptr = ptr->next;
      ptr->digit = num[i] - '0';
      ptr->prev = temp;
    
  ptr->next = NULL;
  this->tail = ptr;


感谢您的帮助!

【问题讨论】:

你用的是什么编译器? MSVC? 这是您自己实现的to_string 还是标准库中包含的那个? 我正在使用 g++。我正在尝试使用标准库实现。 【参考方案1】:

我猜你正在使用 VC 2010,问题是 VC2010 只为longlong longlong doubleunsigned long 提供重载。 int 不包括在内。您需要改用符合类型的:

static_cast&lt;long long&gt;(i)

那条线会变成

string num = to_string(static_cast<long long>(i));

【讨论】:

以上是关于为啥我的 to_string() 不起作用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Javascript 不起作用?

为啥我的自定义 cookiejar 不起作用?

为啥我的 loadUserByUsername 不起作用?

为啥我的 commandListener 不起作用?

为啥我的 UIButton 不起作用?

为啥我的属性路由不起作用?