Q-tarou回答ポイント 70ptウォッチ 3

現在, C++でSTLのsortを使って, sortしています. 本来, 欲しいものはsortされた配列ではなく, その添字の順番です. 例えば, v = {3,5,2,4,1}なら, 1,2,3,4,5}というsortされた配列でなく, idx = {4,2,0,3,1}という添字の順番が欲しいのです. STLのsortでは, このidxを返してくれないので, 一つclassを作って,

class A{
int v;
int no;
}
vector<A> tmp; やlist<A> tmp;
として, sort(tmp.begin(),tmp.end())やtmp.sort()したあとで, noからidxを作っています.

ただ, わざわざclass Aにコピーしてソートするので, メモリーもコピーする手間も無駄のような気がしてなりません.

このような無駄なことをしないで, 添字の順番を変える方法をご存知でしょうか?

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2007-12-23 19:48:38
終了日時
2007-12-30 19:50:02
回答条件
1人2回まで

この質問のカテゴリ

この質問に含まれるキーワード

C++540STL14Vector114BEGIN96Class541配列924

人気の質問

メニュー

PC版