这个b玩意儿耗了我2个小时,怎么tm就写不出来呢。 可能是吃的太饱了吧。 越写不出来一定要越冷静下来。 123456789101112131415161718192021222324252627282930313233343536int num = hp.size;int front = 0;int back = 1;int row = 1;while (num){ for (int j = front; j < back; j++) { cout << hp.arr[j] << " "; } cout << endl; num -= row;//输出完本行还剩的元素个数 //如果减去本行输出的个数小于0 if (num <= 0) { break; } row *= 2;//下一行要输出的元素个数 front = back;//定位下一行的起点 if (num - row <= 0)//如果当前的元素个数不够输出下一行的,直接定位下一行的back位置 { back = hp.size; } else// 够则——手动定位结尾位置 { back += row; }}