Tld*_*gzs -3 c++ bit-manipulation
string binary = std::bitset<16>(15).to_string();//This cast is valid
int a=5;
string s=a.to_string()//this givees error
Run Code Online (Sandbox Code Playgroud)
为什么这是无效的?to_string有什么限制吗?
int是C++中的原始类型,而不是类类型,因此,它不定义任何成员函数,如int::to_string();.你应该尝试非成员std::string std::to_string(int),用作:string s = std::to_string(a);
编辑:std::bitset 不限定一个成员函数to_string(见文件在这里),其被用来简单地返回一个表示位模式字符的字符串,而不是编号作为字符串化整数.如果您确实希望将a转换std::bitset为std::string表示数字的整数,则可以尝试以下操作:
auto bits = std::bitset<16>(15);
std::string s = std::to_string(bits.to_ulong());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |