[過去ログ] C++相談室 part137 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
549(5): 533 (オイコラミネオ MM4f-qteA) 2018/09/18(火)12:44 ID:TXDNyaJKM(1) AAS
ありがとうございます
max関数使わせていただきます
もう一つ別の質問なのですが、
2つのベクターの要素(1000個程度)の比較で、同じi番目の要素の内容差が10以上の要素番号(イテレータ?)を調べたいです
この操作は何回も繰り返すので出来るだけ高速化したいのですがなにか良い方法ありませんかね?
ベクターの要素はint型で内容は大体1000以下の整数です
vec1[100] = 100とvec2[100] = 300
省2
550: (アークセー Sx8b-Jnas) 2018/09/18(火)13:14 ID:l12yg0eyx(1/2) AAS
>>549
思わずC# LINQかPython使いたくなる内容だな。
やりたいことは結局のところ行列演算なのでEigen使うと何か方法ありそうだけど、高速化に寄与するかは不明。
551: (ブーイモ MM9b-ck2F) 2018/09/18(火)14:20 ID:Gab8FMClM(1) AAS
>>549
1000個を例えば4コアで250個ずつ並列化してさらにforの中でn個ずつ比較するとかかな…
intelは
_mm_cmpgt_epi16
armは
vcgt_s16
とかあるみたいだけど
553: はちみつ餃子◆8X2XSCHEME (ワッチョイ bf6f-okpm) 2018/09/18(火)16:41 ID:CgLDhfQ00(2/2) AAS
>>549
新しく for に投げるっていうのがよくわからんのだが、
やりたいことをコードで (C++17 で導入された構造化束縛を使って) 表すと
for (const int& [element1, element2]: extract_if_big_difference(vec1, vec2)) { ほにゃらら }
みたいに書ける関数 extract_if_big_difference が定義できるといいなぁという感じ?
こうだとしたら、並列化するのは難しい気がするぞ。
557: (ワッチョイ 77d7-okpm) 2018/09/18(火)17:06 ID:GYwTywmv0(5/5) AAS
>>549
vectorじゃなくvalarrayだが。。。
int main()
{
int const n = 10; //おまえさんのリクは 1000 だったな
//このへん前置きは置いといて
mt19937 eng;
省20
558(1): (アウアウウー Sa1b-EMso) 2018/09/18(火)18:11 ID:H2d9f0sTa(1) AAS
>>533の質問のレベルを見ていると、
>>549も「実装完了しないうちから最適化必要と思ってたけど実はそんなこと必要なかった」なんて落ちにはならないかなとふと思った。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.030s