我有一个多项式类,它的自然表示是它的系数。如果设置了一个系数,那么它是二项式基的1,三项基的1或2,等等。例如,在二项式基础中,X2+1表示为101;并且在三项基础上2X2+1表示为201。
该类提供operator<<
重载。在内部,类使用积分数组表示系数。所以我应该能够执行:
ostringstream oss;
for (size_t i=0; i<v.size(); i++)
oss << v[i];
我遇到的问题是,我不知道如何为8、10和16以外的基地配置ostream。ios_base
为流行的碱基提供了std::oct
、std::dec
和std::hex
,但我不知道该为不太常用的碱基使用什么。像ios_base上的C++Reference这样的页面并没有讨论使用什么。
如何将ostream与8、10和16以外的碱基一起使用?
我认为使用标准方法是不可能的。查看std::setbase
除8、10或16之外的基数值将基字段重置为零对应于十进制输出和前缀相关输入。
替换我的答案,因为方向是向后的。见itoa。文件中说这是一项非标准功能。由于这是一个非标准函数,stackoverflow在页面中有一些实现。