我正在进行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;
}
感谢您的帮助!
答案 0 :(得分:0)
我不得不猜你使用的是VC 2010,问题是VC2010只为long
,long long
,long double
,unsigned long
提供了重载。 int
不包括在内。您需要使用类型兼容:
static_cast<long long>(i)
该行将成为
string num = to_string(static_cast<long long>(i));