为什么我的to_string()不起作用?

时间:2014-12-08 03:37:29

标签: c++ string

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

我的结构数字节点是一个带有值'字符数字的双重链接列表。我的类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;

}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

static_cast<long long>(i)

该行将成为

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