先頭がばらばらな配列を整頓する
お題
たとえば。。これが正しいデフォルト形で
こんな風にスタート位置がばらばらの配列があったとする
start | |||||||
start | |||||||
start | |||||||
start | |||||||
start | |||||||
start | |||||||
start | |||||||
start |
全部startが先頭にくるようにしたかったら?
コード
引数
- _size…配列全体のサイズ
- _offset…その配列のスタート位置は何個分後ろにずれているのか
template <typename T> void AlignStartPos(T* _src,int _size,int _offset){//offset=その配列は何個分後ろにずれているのか T* temp=new T[_size]; memcpy(temp,&_src[_size-_offset],_offset*sizeof(T)); memcpy(&temp[_offset],_src,_offset*sizeof(T)); memcpy(_src,temp,_size*sizeof(T)); delete[] temp; }