You need to enable JavaScript to run this app. C++98 二维数组指定行循环移位实现方案
优惠活动
大模型
产品
解决方案
定价
更多

C++98 二维数组指定行循环移位实现方案

C++98环境下指定行循环移位实现方案

首先明确目标移位的实际逻辑:对照给定的初始数组和目标数组差异,仅需对行索引为2(0基计数的第三行)执行循环右移1位操作,其余行元素完全保持不变,即可匹配期望的结果。

无标准库依赖的手动实现(100%兼容所有C++98编译环境)

该方案不依赖任何标准库算法,直接通过内存修改完成移位,无额外编译依赖:

  • 暂存目标行的最后一个元素值:int tmp = mat[2][3];
  • 将目标行的前3个元素从后往前逐位向右偏移1位:
    for (int i = 3; i > 0; i--) {
        mat[2][i] = mat[2][i-1];
    }
    
  • 将暂存的行尾元素放到目标行行首:mat[2][0] = tmp;

基于C++98标准库算法的简洁实现

C++98标准库早已内置std::rotate循环移位算法,可直接调用完成相同效果,无需手写循环:

  • 引入头文件:#include <algorithm>
  • 直接对目标行的连续内存区间执行右移1位的循环操作:std::rotate(mat[2], mat[2] + 3, mat[2] + 4);

注意:上述所有实现均为直接修改原二维数组的内存值,不需要额外打印操作,执行完成后原数组即可达到目标状态。


内容的提问来源于stack exchange,提问作者newDev2000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.07 06:45:01