C++如何为动态生成的二维数组添加外围行列标签
实现方案
你不需要修改已填充完成的二维数组本身,仅调整打印逻辑即可实现加行列标签的效果,是成本最低的实现方式:
- 打印输出前先打顶部列标签:第一个位置留空对齐行标签列,后续依次输出0到
colCount-1的列号 - 逐行打印数组内容时,先输出当前行的行标签,再打印该行的所有数组元素
- 注意你代码中做了数组逆序操作,行标签可以根据实际需要调整是否和原
gridY对应
修改后的打印代码示例
//reverse reverse(&cityArray[0], &cityArray[9]); // 打印顶部列标签 cout << " "; // 宽度根据行标签长度调整,保证对齐 for (int j = 0; j < colCount; ++j) { cout << j << " "; // 输出宽度和数组元素的输出宽度保持一致 } cout << endl; // 逐行打印行标签+数组内容 for (int i = 0; i < rowCount; ++i) { // 如果需要行标签和原gridY对应,把i换成 rowCount - 1 - i 即可 cout << i << " "; for (int j = 0; j < colCount; ++j) { cout << cityArray[i][j] << " "; } cout << endl; } // 用完记得释放动态申请的内存,避免泄漏 for(int i=0; i<rowCount; i++) { delete[] cityArray[i]; } delete[] cityArray;
如果确实需要把标签存储到数组中,可以按以下步骤操作:
- 新申请
rowCount+1行、colCount+1列的二维字符串数组 - 新数组
[0][0]位置填空值,第一行剩余位置存列号标签,第一列剩余位置存行号标签 - 将原
cityArray的所有元素拷贝到新数组从[1][1]开始的对应位置即可
内容的提问来源于stack exchange,提问作者Chloven Tan
相关产品推荐
相关产品推荐

