X



C++相談室 part139
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ f65b-zn+7)
垢版 |
2018/10/06(土) 00:59:48.54ID:CdYUXXMG0
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/

■長いソースを貼るときはここへ。■
 http://codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)

----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0233デフォルトの名無しさん (ワッチョイ 07e0-LO+h)
垢版 |
2018/10/16(火) 17:52:27.17ID:GbK/byr70
コンテナ禁止なのか、<algorithm>まで禁止なのかにもよるな
前者だけなら自前コンテナでもメンバー関数揃えておけばソートや探索は後者使えるし
ただ<algorithm>の中で本当にヒープ使ってないのかというのは
0235デフォルトの名無しさん (ワッチョイ c708-4Hut)
垢版 |
2018/10/16(火) 18:17:14.69ID:5Df0UEAr0
>>231
その昔、バカでも読める言語ってのが一世を風靡したね
そのお陰で、バカ人口が増えて生産性に比例しない人件費がうなぎ登りして
たーまやーとばかりに弾けた
ピンサロで嬢が知り合いだったときはマジびびった
0236デフォルトの名無しさん (アウウィフ FFeb-NsMu)
垢版 |
2018/10/16(火) 18:20:58.72ID:YLHbxnbGF
>>227
>ここには「stringのようなその他のC++標準ライブラリの機能にも影響を与え」
>とあり、 string 自体は STL ではないかのようにも読める。

stringというかSTLって「標準」のくせに亜種がいっぱいあった希ガス
0237デフォルトの名無しさん (ガックシ 068f-aaey)
垢版 |
2018/10/16(火) 18:30:46.21ID:VMchfhmP6
科研費余ってるんだが、C++ とかプログラミング関係の書籍で必読だったり面白いもの教えてくれませんか

Effective C++、ストラウストラップ、リーダブルコードくらいは持ってます


個人的には C++ Coding Standards 欲しかったが新品じゃ売ってないな
0250はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-4Hut)
垢版 |
2018/10/16(火) 21:34:11.34ID:DXK1BkAG0
>>237
ワイも D&E を推すやで。

C++ はツールやドキュメントの発展と足並みを揃えることで上手く発展してきたという話が書かれていて、
現実的な事情を踏まえた歴史の流れがわかる。
ただ綺麗にデザインした言語とは違う現実の重みを感じる。
(まあそれが負債になってもいるんだけど。)

単純に読み物としても面白いよ。
0252はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-4Hut)
垢版 |
2018/10/16(火) 21:38:41.78ID:DXK1BkAG0
>>224
もちろん色々と使いこなせればそれが強みにもなるんだけど、
使ったことない言語やフレームワークを使ったプロジェクトにアサインされるなんてよくあることみたいだし、
そういうときに (使いこなせるとはとうてい言えなくても) 動くものをでっちあげる能力ってのも
それはそれで重宝されたりっていう話も聞くし、
どういう強みでやっていくかっていうのは千差万別なんじゃないかと思う。
0254デフォルトの名無しさん (オイコラミネオ MMfb-u0q9)
垢版 |
2018/10/16(火) 22:58:29.81ID:rnwRcPOpM
C++17は和本だと江副氏の一択なんだけどあれは
そうなった背景とか使い道にはそんなに触れられてないのがな
逆引き辞典とか流し読みして大まかな把握するには便利だけど
0255デフォルトの名無しさん
垢版 |
2018/10/17(水) 01:15:28.13ID:GtdoA72O0
>>249
プロ棋士の居飛車党が振り飛車指したからといってアマに負けたら恥だと思うが

「振り飛車指せないって言っても、居飛車よりはって意味や。君ら如き一間飛車でも勝てるで?」的な

「F# 書けないって言っても、メインで業務に使ってるC++よりはって意味や。君らよりは書けるで?」的な

(F# の部分にはマイナー言語が入るものとする)

プロ名乗るなら。
0257デフォルトの名無しさん (JP 0Hbf-CE2c)
垢版 |
2018/10/17(水) 04:54:36.62ID:oHwaYHH6H
ドラクエ10の下請けプログラマーが精鋭揃いだということはわかりますが、こういう苦情が後をたちません!

534 名無しさん@ゴーゴーゴーゴー! (ワッチョイ 4910-binO [180.51.97.166 [上級国民]]) sage 2018/10/15(月) 09:26:17.41 ID:5tgKKwqc0
https://hiroba.dqx.jp/sc/forum/prethread/408523/

移動速度が遅すぎてプレイする気になれない……

ぎのぎ
[GM468-320]
テーマ:操作性・メニュー 2018/10/15 09:17
こんにちは。ドラクエ10を始めて、着飾りもストーリーもたくさん楽しませていただいています。
ストーリーは進むたびにたくさん泣けて、ゲーム内容には大満足です。

しかし、移動速度があまりにも遅すぎて、ストレスが溜まってしまい、最近はゲーム自体から足が遠退いてしまっています。
ドルボードではまだ耐えられます。
ストレスになるのは、特に町のなかです。

以前の投稿で、早くなる料理はできない、とお答えしていらっしゃいましたが、移動速度が上がる装備はありますよね。
そちらの方がよっぽどあるのとないのと変わりそうですし、やりこみ具合で差が開く部分に思います。
時間設定のあるダンジョンなどもあるそうで、考慮するのは確かに大変そうです。

なんなら、素のスピードが変わらなくても構いません。町中だけでもダッシュ機能のようなものをつけていただけませんか?
ただ方向キーを押すだけの時間が、本当に苦痛なんです。


ストレスになるなら止めちゃいなw誰も止めないよw
0266デフォルトの名無しさん (オイコラミネオ MMfb-74BK)
垢版 |
2018/10/17(水) 17:39:50.55ID:imhsxBLOM
OpenCVのtemplatematchingについてなのですが、
しきい値を決めて類似度がしきい値以上の物を全探索で複数探すものはあったのですが、
類似度の上位2つのみを探す方法って無いですかね?
全探索は遅いので上位複数個だけ取れたらいいなと
0269デフォルトの名無しさん (ワッチョイ df23-KSPj)
垢版 |
2018/10/17(水) 19:12:33.43ID:9fdgZI6P0
高速に判定できる軽量版データ(部分画像、低解像度、モノクロなど)がありうるなら
それで箸にも棒にもかからないものを高速にふるい落としてから
残ったものだけをちゃんと調べればいいよ
0270デフォルトの名無しさん (アウアウカー Sa7b-v5lg)
垢版 |
2018/10/17(水) 20:15:44.53ID:MwWLHD/ka
並べ替えて上位複数個取り出すんじゃダメなん?
0271デフォルトの名無しさん (ワッチョイ 07e0-LO+h)
垢版 |
2018/10/17(水) 21:50:01.45ID:4yuTjZOF0
>>266は、閾値以上の値を全部取ってくる関数の代わりとして
上位n個(nは定数)を取ってくる関数はないか、ってことだろ?

> 全探索は遅いので
と書いちゃうから誤読されてそう。上位n個の場合でも全部見る必要はあるんだから
0272デフォルトの名無しさん (JP 0Hbf-CE2c)
垢版 |
2018/10/17(水) 21:56:50.45ID:oHwaYHH6H
このゲームすぐ持ち物いっぱいになるな
http://egg.5ch.net/test/read.cgi/dqo/1539336435/

使い道のないアイテム(無駄なコード)が多すぎやしないか?
0273デフォルトの名無しさん (アウアウカー Sa7b-v5lg)
垢版 |
2018/10/17(水) 22:16:11.68ID:MwWLHD/ka
>>271
だよね。
全部閾値以下って可能性考慮しても、並べ替えて上位から閾値以上か確認しながら取り出した方が早いべ。
0275デフォルトの名無しさん (アウアウカー Sa7b-v5lg)
垢版 |
2018/10/17(水) 23:07:41.45ID:MwWLHD/ka
>>274
んじゃどうすんの?
最大値を見つけた後に、最大値省いたリストなり配列から次の最大値(2番目に大きい数)探すにしたって、最大値を省くために最大値が有った場所を覚えておいて、そこを削除するなりしないと駄目でしょ?
面倒くさいし、速いと思えないんだけど。
0277デフォルトの名無しさん (アウアウカー Sa7b-v5lg)
垢版 |
2018/10/17(水) 23:17:55.90ID:MwWLHD/ka
。。。。。え“
5番目の大きさまでさがすとなら、5個もelse if書けと?
任意の個数なら、毎回書き直しか?
アホかと。
0281デフォルトの名無しさん (ワッチョイ 07e0-LO+h)
垢版 |
2018/10/17(水) 23:37:39.44ID:4yuTjZOF0
元データをソートしなくても、結果用にn個のソート済み配列(flat_setとして提案されてるやつ)を用意して
そこに追加していきゃいいのでは。既に閾値以上のがn個集まってたら以降は最小のと比較して交換
0282デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 00:31:36.03ID:qf9NxgCDa
>>281
n個のソート済み配列って、ソート済み配列を何個も用意してどうする。。。と言う言いたいこと分かるけど、書き間違いでおかしな事言ってるっぽくなってるっていうツッコミは置いといて。。。
閾値が在るんだから、先に閾値以上の物だけ別の配列に入れてソートすれば良いってのは確かに任意個数で一番速そう。
0283デフォルトの名無しさん (ワッチョイ afe3-7PZ0)
垢版 |
2018/10/18(木) 00:47:10.59ID:0DBeL9M10
交換が発生する度にn個中の最小を検索する必要がある
閾値以上のを1回ソートとあまり変わらないような・・・データ次第か
全ソートして上から閾値見ながら、で充分じゃね?
選択部を工夫してもたいして効果なさそう
0284デフォルトの名無しさん (ワッチョイ 97e0-M8rW)
垢版 |
2018/10/18(木) 00:52:16.35ID:fwCHkrgD0
>>283
ソート「済み」配列なので最小は必ず端にあるから検索の必要はないよ
代わりに追加の度に二分探索をする
それをイメージしてもらうためにflat_mapって書いたんだが未策定のものは伝わらないな、うん

>>282
すまん、要素数n個のソート済み配列を1個、で
0287デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 01:42:23.05ID:qf9NxgCDa
>>283
正直、追加の話見るまで最小と交換って私も「?」になった。
要するに1回目はソート済み配列が無いので >>282 をする。
要素を追加する度に、閾値以上かを見て、閾値以上ならソート済み配列で小さい順から二分探索して順番になる位置に挿入。

全要素1000で閾値以上が100とかなら、ソートするのが100だけだから、かなり高速化する。
追加もソート済みに入れるだけなので、遅くは無いし、次に取り出す事考えると(追加と同時にソート済みにしておく)、ソート済みから取り出すだけになるので全体として速くなる。

と言う考えであってる。。。と思う。
0288デフォルトの名無しさん (ワッチョイ 97e0-M8rW)
垢版 |
2018/10/18(木) 02:00:19.06ID:fwCHkrgD0
>>287
近くなったがまだちょっと違う
結果用の配列は要素数nしか確保しない。閾値以上が100個あってもn=2なら要素数2
で、元データを順に見ていって、3個目以降が見つかったら結果用の配列に入り切らないので
後から見つけたのが結果用の配列の中の最小よりも大きければ、最小のを捨てた上で二分探索した位置に挿入する
……というつもりだった

元データに後から追加があったら、みたいなことを考えて書いたわけではないです
0290デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 03:05:15.05ID:qf9NxgCDa
>>288
なるほど。
今全部分かった。

うーん。
それは任意の個数nと閾値以上の個数が近くないと、n個目以降が見つかる度に比較、探索、挿入を繰り返す事に。。。
データによりけりではあるけど、微妙。

>>282 は、イメージとしてはクイックソートの最初のピボットを閾値にして、閾値以下はソートしない様に変形させた感じ。

どっちがどうとかは、実測しないとなんとも言えなさそう。
0292デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 07:53:42.77ID:qf9NxgCDa
>>291
そっちのが凄い。
任意のnーmまでの範囲だけクイックソートっぽくソートするのか。
最上位(m)からn位までのソートでおkじゃないか。
0295デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 20:00:49.79ID:qf9NxgCDa
それは >>282,>>290,>>292 書いた私の事だろうか。
そんな呼び名がつくのは光栄だけど、高卒で基本アルゴリズムしか知らないんだ。
その割には悪く無い処理を考えられたと自画自賛してたんだけど、やっぱ頭のいい人の考えるアルゴリズムは凄いね。
0297デフォルトの名無しさん (ワッチョイ 97e0-M8rW)
垢版 |
2018/10/19(金) 01:06:20.80ID:KjS8CKpl0
partial_sortなんてあったのか……orz
でもquickselectは元データを並び替えてしまうから
それができないならこのスレに書かれた方法でもいいけどな(負け惜しみ)

負け惜しみついでに>>290の議論だが、mは元データの個数、nは欲しい個数として
>>282の閾値以上を抽出してから一括してソートは
最速のソートが使えるのでオーダーはO(m log m)、空間使用量は元データと同じ作業領域がいるのでmに比例
>>288(俺)のソート済み配列に追加していくのは
挿入ソートを小分けにしてるわけだからオーダーはO(m*n)、空間使用量はnに比例

nとmが近いかそもそものデータ量が小さければ>>282が、そうでなければ>>288有利かな
……で良いと思う
0298デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/19(金) 01:22:58.84ID:SjrnPnkZa
>>297
大丈夫、私も同じく沈んだw
純粋に貴方と私のロジックでは、貴方の方が有利という試算なのね。
おk。了解した。
0299デフォルトの名無しさん (ワッチョイ 97e0-M8rW)
垢版 |
2018/10/19(金) 01:38:12.56ID:KjS8CKpl0
いやまああくまで最悪計算量なんで、結局実際のところは実測しないとだけどもね
オーダー上は挿入でnに比例するから二分探索に意味はない、と書きながら気付いたりもしてる(苦笑)
0300デフォルトの名無しさん (オイコラミネオ MM1b-Z4f9)
垢版 |
2018/10/19(金) 11:38:23.88ID:m66PCHeZM
>>294
地味に標準指定のアルゴリズムも改善されてて追いきれないよぉ
0304デフォルトの名無しさん (アウウィフ FF9f-T/6m)
垢版 |
2018/10/20(土) 13:36:14.45ID:u8BRF3D8F
専ブラのプレビューでも相当時間掛かった
リンクを踏む気は無い
0305デフォルトの名無しさん (ワッチョイ 6abd-9c8P)
垢版 |
2018/10/20(土) 14:20:59.31ID:qs+WVIEc0
できたので貼る
Insertion sortで上位5件の相関値と座標(x, y)を表示するやつ:
ttps://ideone.com/L0fXH2
これは、同着があっても上位5位に入れば全部出力する。

get_top_N_pixels()がご本尊の関数
get_top_N_pixels_exp()が比較用に作ったバージョンで、std::sortで全画素並べ替えて上位5件を出力する。

上位5位以内に同着があまりに多いとget_top_N_pixels_exp()の方のが早いが
適当に作ったランダムな値の条件でQVGAぐらいの画像サイズだったらget_top_N_pixels()の方が8倍ぐらい早いっぽ
0307305 (ワッチョイ 6abd-9c8P)
垢版 |
2018/10/21(日) 13:32:51.16ID:CG65RjWX0
訂正 s/同着/同順/g

で、同順がそれなりにある前提でパホーマンスをちゃんと計ったら8倍どころではなかったわ3000倍以上早かったわ;
条件は以下の通り

■ 画像サイズ:
W=320 - 10, H=240 - 10
(Number of pixels=71300)

■ データ
値域[-5000.0F, 5000.0F]の一様分布。データ重複無し。

■ Basic design の結果(get_top_N_pixels_exp(): 全画素std::sort())
387 sec @ 反復回数ntimes=100, TOP_N=256 --> ntimesを10倍にすると3870 secの見込み

■ Practical designの結果(get_top_N_pixels(): TOP_N画素のInsertion sort
1 sec @ 反復回数ntimes=1000, TOP_N=256
14 sec @ 反復回数ntimes=10000, TOP_N=256

とゆーわけで、今回は一様分布かつデータ重複無しでこうだったので、TOP_N=256は一般条件における128と解釈するとして、
上位5位に入るデータの個数が128個以下なら>>305のpractical designで上記のパホーマンスが出る見込み
0308305 (ワッチョイ 6abd-9c8P)
垢版 |
2018/10/21(日) 13:46:01.97ID:CG65RjWX0
ごめwwwwwデータ訂正および結論は480倍早かった、に訂正、

■ Practical designの結果(get_top_N_pixels(): TOP_N画素のInsertion sort
1 sec @ 反復回数ntimes=1000, TOP_N=256
8 sec @ 反復回数ntimes=10000, TOP_N=256 -- 3870 / 8 = 483.75
14 sec @ 反復回数ntimes=10000, TOP_N=65536
0309305 (ワッチョイ 6abd-9c8P)
垢版 |
2018/10/21(日) 14:18:55.75ID:CG65RjWX0
ごめwwwwww結論は3000倍以上早かった、で訂正の必要はなかったorz

Basic designの結果
 387 sec @ 反復回数ntimes=100, TOP_N=256
に対して、Practical designの結果
 8 sec @ 反復回数ntimes=10000, TOP_N=256
は、(387/100) / (8/10000) = 4837.5倍早い

今日日のCPUアーキテクチャーとinsertion sort様様じゃ
0314デフォルトの名無しさん (アウウィフ FF9f-T/6m)
垢版 |
2018/10/22(月) 15:49:25.60ID:H1W4+XYRF
tupleが便利だけどまだちょっと物足りない
0316デフォルトの名無しさん (エムゾネ FF8a-T/6m)
垢版 |
2018/10/22(月) 18:11:37.07ID:N4Dlk9u9F
インライン変数って使ってる?
0320デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/22(月) 19:39:34.29ID:3rTgJh0aa
横から納得w
古いC++(C互換重視)と新しいC++(新世界の王に俺はなるモード)の互換のためか。
ナル。
0323はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 666f-nBLa)
垢版 |
2018/10/23(火) 18:22:08.06ID:L3KABBTH0
>>322
戻すっていうか、普通のファイルシステムでは辞書順に並ばないことの方が多いんじゃないの。 知らんけど。
言語仕様的には recursive_directory_iterator が辿る順序は未規定。
0324デフォルトの名無しさん (ワッチョイ 4acb-nBLa)
垢版 |
2018/10/23(火) 21:40:23.22ID:/OGOSsnj0
二次記憶装置のデータをいちいちソート済みに保とうとするとオーバーヘッドが無茶苦茶だからな
読み込み順がおかしくなるんじゃなく、いつもOSがソートして見せてくれてたのが元のまま出てきただけだ
DOSの時代はdirに/oスイッチが追加されたとき便利になったものだと思ったよ
0329デフォルトの名無しさん (ワッチョイ f380-tM5n)
垢版 |
2018/10/23(火) 23:15:54.90ID:+Sb0MP+K0
また低学歴知恵遅れたちは頭わるいこといってるわ。。。
dir.exe?
dirはcmd.exeの内部コマンドだからな
dir.exeなんかあるワケがない

ソートするのはcmd.exeがdirコマンドを受けつけたときの機能で
OS自体の機能じゃないからな

ホントな低学歴知恵遅れたちは基本的なことが分かってない
0332デフォルトの名無しさん (ワッチョイ f380-tM5n)
垢版 |
2018/10/24(水) 22:50:08.00ID:WtQFT3Lb0
全角の部分を半角で書き込むと403ではじかれる

わかった?

低学歴知恵遅れの書き込みはいつも浅はか
■ このスレッドは過去ログ倉庫に格納されています