我有一个多项式类,它的自然表示是它的系数。如果设置了系数,那么其a 1用于二项式,1或2用于三项式等。例如,在二项式的基础上,X 2 + 1表示为101;在三项式基础上,2X 2 + 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
和{{1对于流行的基础,但我不知道如何使用较少使用的基地。像C++ Reference on ios_base这样的网页没有讨论要使用的内容。
如何使用8,10和16以外的基础的ostream?
答案 0 :(得分:4)
我认为这不可能使用标准手段。看std::setbase
8,10或16以外的基数值将基数重置为零,其中 对应于十进制输出和前缀相关的输入。
答案 1 :(得分:0)
因为方向倒退而取代我的答案。见itoa。文档说这是一个非标准的功能。由于这是一个非标准函数,stackoverflow在页面中有一些实现。