トップページ > プログラム > 2014年10月09日 > vX1/bJA6

書き込み順位&時間帯一覧

21 位/179 ID中時間01234567891011121314151617181920212223Total
書き込み数1000000000000000000000102



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
822
スレ立てるまでもない質問はここで 138匹目

書き込みレス一覧

スレ立てるまでもない質問はここで 138匹目
822 :デフォルトの名無しさん[]:2014/10/09(木) 00:44:39.34 ID:vX1/bJA6
VisualC++2012
std::stringの集合があって、それぞれに0からの通し番号を付けたい。
ただし、stringの文字列は重複している可能性があり、
その場合は同じ番号を与えたい。番号の順は問わない。

最初、std::setを使って重複を排除し
番号を与える方法を取ったが、25000件程度で8秒もかかってしまい
とても遅すぎる印象。
setのようなサーチをしなくても良い別の解決方法は無いですか?
スレ立てるまでもない質問はここで 138匹目
833 :822[sage]:2014/10/09(木) 22:37:33.58 ID:vX1/bJA6
>>826
MMDモデルをアニメーションさせる為のVMDというキーフレームデータです。
ボーンの名前とフレーム単位のアニメ情報が25000個あります。
アプリの取り扱い上、ボーン名でまとめた方が効率が良いので
データの並び替えを入れたところ遅すぎるって感じです。

>>830
std::set< wstring, std::less< wstring > >にinsertで要素を25000回追加するだけで
8秒掛かっています。最適化等は一応フルで有効にしてます。

ソートしてから重複を検出する仕組みが良さそうなので
そっちに変えて試してみます。ありがとうございました。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。