我知道有可能使用其他方法(例如printf())来执行此操作,但我想知道是否可以使用cout完成此操作。
Insert -8: -8 90 34 -78 34 235 9 -12 653
Insert -78: -78 -8 34 90 34 235 9 -12 653
这是排序算法的部分输出。它显示了每次传球后会发生什么。每个数字来自同一个向量。如上所示,如果第一个元素的减号始终对齐,怎么可能(后面的元素无关紧要)?
目前我的代码如下:
cout << "Insert " << my_vector[pos] << ": ";
for (int k = 0; k < size_of_vector; k++) {
cout << my_vector[k] << " ";
}
cout << endl;
但是,我的代码会产生如下输出:
Insert -8: -8 90 34 -78 34 235 9 -12 653
Insert -78: -78 -8 34 90 34 235 9 -12 653
答案 0 :(得分:1)
一种简单的方法是以指定的字段宽度输出引入作为单个字符串,例如
cout
<< "Insert "
<< setw( 14 ) << to_string( my_vector[pos] ) + ":";
需要选择幻数以容纳最大位数和符号。
免责声明:编译器未触及的代码。