(つД`)C/C++の宿題は私にやらせてよ!Ver12
■ このスレッドは過去ログ倉庫に格納されています
0157デフォルトの名無しさん
NGNGC++だったら...typeにoperator =が定義されているものとして
#define swap(type,a,b){type *t=new type;t=a;a=b;b=t;delete t;}
というのが最も簡単そうな感じ。
operator =が定義されていなければ
#define swap(type,a,b){void *t=malloc(sizeof(type));memcpy(t,&a,sizeof(type)\
memcpy(&a,&b,sizeof(type));memcpy(&b,t,sizeof(type));free(t);}
って感じでどうよ?(結果は無保証)
swapを式の中で使うんだったらコンマ演算子とか使って工夫しなければならない
けど、一時変数の取り方が確かに難しいね。
■ このスレッドは過去ログ倉庫に格納されています