元<型名 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
不是编译时
已知的.所以不要用编译时
.