编译时与运行时,不要搞混了.
元<型名 T>空 右移(向量<T>&列,整 M,整 n){//
    整 k=列.大小();列.调整(k+n);
    当(k>M){//i=1,i=0都没问题.
        k--;列[k+n]=列[k];
    }//右移n位,从M处右移n位
}//直接从M处,右移n位.主要是n是运行时才知道的
元<整 M,型名 T>
空 右移(向量<T>&列,整 n){右移(列,M,n);}
元<整 M,整 N,型名 T>
空 右移(向量<T>&列){右移(列,M,N);}
上面代码就是,本来该运行时的,结果搞成编译时,就犯错了.因为,上面的M,N不是编译时已知的.所以不要用编译时.
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号