string binary = std::bitset<16>(15).to_string();//This cast is valid
int a=5;
string s=a.to_string()//this givees error
为什么这是无效的?to_string有什么限制吗?
int
是C++中的基元类型,而不是类类型,因此,它没有定义任何成员函数,如int::to_string();
。您应该尝试非成员std::string std::to_string(int)
,用作:string s = std::to_string(a);
EDIT:std::bitset
确实定义了一个成员函数to_string
(请参阅此处的文档(,该函数用于简单地返回表示位模式的字符串,而不是作为字符串化整数的数字。如果您确实想将std::bitset
转换为std::string
,将数字表示为整数,您可以尝试以下操作:
auto bits = std::bitset<16>(15);
std::string s = std::to_string(bits.to_ulong());
to_string
是std::bitset
的成员函数。int
中没有to_string
成员。
<string>
中提供了一个用于数字类型的to_string
函数。你会这样使用它:
int a=5;
string s=to_string(a);