X

C++相談室 part139

■ このスレッドは過去ログ倉庫に格納されています
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
199デフォルトの名無しさん (バットンキン MMbf-CE2c)
垢版 |
2018/10/15(月) 16:26:28.74ID:tvJDbt95M
ドラゴンクエスト10の下請けプログラマーはC/C++の名人ばかりですよ?
2018/10/15(月) 16:28:24.70ID:/mdlwLZy0
>>198
猫耳猫オンラインを目指しているのでしょう
201デフォルトの名無しさん (バットンキン MMbf-CE2c)
垢版 |
2018/10/15(月) 16:44:25.17ID:tvJDbt95M
友人がドラクエ10プログラマーなんだけど、C/C++については何でも彼に聞くようにしている。
2018/10/15(月) 17:23:10.52ID:EhepTNcp0
>>196
書いてませんでしたけど、パッケージじゃなくて全部ソースから./confugre以下ビルドして入れてます。
まあそのconfigureが「4関数足りないから切っちまえ」と判断した本人ですが。
2018/10/15(月) 21:14:12.69ID:E6pr56BO0
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
204デフォルトの名無しさん (ワッチョイ dff7-1yL/)
垢版 |
2018/10/16(火) 05:10:47.74ID:2DZhjJ9l0
C++がオワコンってマ?
Cの次に C++→C#→ほかの言語 の順番で勉強しようと思ってたんやが・・・
せっかく脱ニートしようと思ったのに水差された気分やわ
寝るわクソが
2018/10/16(火) 08:02:21.90ID:oqEWuMcG0
20年前からオワコンと言われ続けてるからオワコンが嫌いならやめた方がいいよ
2018/10/16(火) 08:05:29.93ID:7CCe71Wvr
C++11 以降、いろんな可能性があるように思えてきた
2018/10/16(火) 08:22:47.24ID:RwiWe9L4M
ちな昨日のニュース記事。
http://egg.5ch.net/test/read.cgi/bizplus/1539603497/
C++erも困惑の結果。
2018/10/16(火) 08:31:56.14ID:ChMhlbB0d
C++11以降は神
209デフォルトの名無しさん (ワッチョイ dff7-6Dpv)
垢版 |
2018/10/16(火) 08:39:41.73ID:2DZhjJ9l0
神なんやな
よし次はC++やるわ
ありがとな
2018/10/16(火) 09:38:01.41ID:VHaobsT+0
C++やるとか何プログラマーになるきよ。
つか、言語増やせばいいってもんじゃねぇぞ
2018/10/16(火) 09:47:44.01ID:VHaobsT+H
まぁC++はちょっと別格にうざいけど、言語だけ増やしても役立たずの烙印だぞ。そんな言語増やすことに一生懸命になることより一つアプリ作れるほうが重要だわ。
だから、例えばJavaを使ってandroidアプリ開発できるとか。
要は言語以外にクラスライブラリやUIフレームワークの知識や経験を身に付けることに一生懸命頑張ったほうがいいと思う。
2018/10/16(火) 10:39:57.45ID:kKW6G61E0
>>208
神は全盛時までのCだろ
無駄のない細マッチョ

思いつきでゴテゴテ重装備するC++やC99以後はそうじゃない
C++11はそれまでを反省はしてるけど重装備指向は変わってない
2018/10/16(火) 10:40:14.59ID:rifs1aEYa
オワコンだとか安易な神だとか、そういう子供っぽい発送だとどうせすぐに飽きてやめるんじゃないかと思えてくる。
214デフォルトの名無しさん (ワッチョイ dff7-6Dpv)
垢版 |
2018/10/16(火) 10:55:42.15ID:2DZhjJ9l0
大丈夫やで
まず覚悟があるんや
ワイは死ぬまで趣味に生きると決めとるんや
それに動機もあるで
Android NDKでC++でもAndroidアプリ作れると聞いとるからな
ほんで一攫千金の大逆転や
2018/10/16(火) 11:13:47.50ID:OaARVILoM
いいかみんな、どんな新規格を使って作るかが目的じゃないぜ?

まあ使いたくなるんだけどね
216デフォルトの名無しさん (アウウィフ FFeb-NsMu)
垢版 |
2018/10/16(火) 11:56:04.30ID:YLHbxnbGF
>>206
せやな
217デフォルトの名無しさん (アウウィフ FFeb-NsMu)
垢版 |
2018/10/16(火) 11:57:59.03ID:YLHbxnbGF
>>212
装備にこだわってる人が多いみたいだけど
エラーメッセージをもっと判りやすくするべき
2018/10/16(火) 13:21:59.25ID:DXK1BkAG0
>>215
新しい機能はそれを使った方が良くなる (場合もある) から追加してるわけだし、
どういうときに便利なのかに慣れるためには最初は過剰なくらいに使ってみてもいいと思うけどね。
いきなり本格的に導入する前に実験的なプロジェクトで試すくらいはした方がいいかもしれんが。
2018/10/16(火) 13:45:02.82ID:DjFJv3DN0
以前は完全にbetter Cとしてしか見ていなかったが、STLとかBoostを積極的に使うようになってから面白くなってきた
2018/10/16(火) 14:05:38.44ID:ChMhlbB0d
「うちはSTL禁止」と言われて辞めたくなったw
2018/10/16(火) 14:18:14.23ID:OaARVILoM
>>220
稀によくあるw
理由は「他のメンバーが読めないから」w
222デフォルトの名無しさん (アウウィフ FFeb-NsMu)
垢版 |
2018/10/16(火) 14:39:57.19ID:YLHbxnbGF
BOOST禁止は見かけるけどSTL禁止はひどいな
2018/10/16(火) 14:45:06.11ID:GbK/byr70
いやまて、その真意は動的メモリ割り当てを減らしたい、かもしれんぞ
2018/10/16(火) 15:10:13.15ID:RUqX36lE0
言語増やせばいいってもんじゃないけど、プロのプログラマなら一通りどの言語も少なくともアマよりは使いこなせるでしょ
225デフォルトの名無しさん (アウウィフ FFeb-NsMu)
垢版 |
2018/10/16(火) 16:24:19.15ID:YLHbxnbGF
必要なのは言語の多寡ではない
CS(Customer Satisfaction ではないぞ)への理解
2018/10/16(火) 16:25:43.12ID:AEURreP/p
標準ヒープ禁止ならSTL禁止にはなりうるだろうな
アロケータ指定すりゃいいけど結構不便だし
2018/10/16(火) 16:42:01.42ID:DXK1BkAG0
何が STL なのかっていうのは意見が分かれる部分もあるからなぁ。
便宜的に STL と呼ばれているものは仕様的には完全に C++ の一部で、
他の規定と区別するものは何もない。

Wikipedia にも簡単な歴史が書かれてるけど、
https://ja.wikipedia.org/wiki/Standard_Template_Library#%E6%AD%B4%E5%8F%B2
ここには「stringのようなその他のC++標準ライブラリの機能にも影響を与え」
とあり、 string 自体は STL ではないかのようにも読める。
でも、 string が STL の一部かというとだいたいの人は STL だと思ってるだろうし。

他の人が読めないからっていうのが理由ならテンプレート自体がもうダメってことなんかな。
2018/10/16(火) 17:03:12.74ID:AEURreP/p
STLってあくまで俗称やろ、定義は曖昧
俺も「読めないからテンプレート使わないでくれ」と言われたことはあるなぁ
PC向けなんだしSTLくらいは我慢してもらったけど

でも世の中標準のヒープ自体使っちゃいけない業種、結構あるやろ
コンシューマゲーム機も大抵そうやで
アロケータ渡せばいいって言われるだろうけど正直不便
2018/10/16(火) 17:20:07.77ID:DXK1BkAG0
つっても、そこそこの規模のプログラムだと
STL は使わないにしても
ちゃんとしたフレームワークを用意するやろ?
そうでもないのかな。 割と泥臭くやってたりするのかな。
2018/10/16(火) 17:24:00.16ID:5Df0UEAr0
>>215
当たり前
欲しくて欲しくて渇望してた機能がやっと来るのがC++だから
使いたくなるのは自明だ
231デフォルトの名無しさん (オイコラミネオ MMfb-u0q9)
垢版 |
2018/10/16(火) 17:28:01.22ID:rnwRcPOpM
X他の人が読めない
O無能が読めない
実際は多くがこうな訳だけど仕方ないよね
お勉強全くしない奴少なくないしそれに合わせないとだもんね
2018/10/16(火) 17:35:42.75ID:AEURreP/p
>>229
社内ライブラリはもちろんあるけど
検索機能を含むコンテナとなるとやっぱりSTLが楽なんだよなぁ
さすがに二分木やハッシュで検索、まで自社で作るほど
そういう用途に頻繁には遭遇しない

ほんとはそういう中小企業でPC向け、ってなったらそれこそ標準ライブラリには頼れよと言いたかったけどね
2018/10/16(火) 17:52:27.17ID:GbK/byr70
コンテナ禁止なのか、<algorithm>まで禁止なのかにもよるな
前者だけなら自前コンテナでもメンバー関数揃えておけばソートや探索は後者使えるし
ただ<algorithm>の中で本当にヒープ使ってないのかというのは
2018/10/16(火) 17:53:25.84ID:VsgeYI1JM
バカに合わせないとお前が一生メンテする羽目になるぞ
2018/10/16(火) 18:17:14.69ID:5Df0UEAr0
>>231
その昔、バカでも読める言語ってのが一世を風靡したね
そのお陰で、バカ人口が増えて生産性に比例しない人件費がうなぎ登りして
たーまやーとばかりに弾けた
ピンサロで嬢が知り合いだったときはマジびびった
236デフォルトの名無しさん (アウウィフ FFeb-NsMu)
垢版 |
2018/10/16(火) 18:20:58.72ID:YLHbxnbGF
>>227
>ここには「stringのようなその他のC++標準ライブラリの機能にも影響を与え」
>とあり、 string 自体は STL ではないかのようにも読める。

stringというかSTLって「標準」のくせに亜種がいっぱいあった希ガス
2018/10/16(火) 18:30:46.21ID:VMchfhmP6
科研費余ってるんだが、C++ とかプログラミング関係の書籍で必読だったり面白いもの教えてくれませんか

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


個人的には C++ Coding Standards 欲しかったが新品じゃ売ってないな
2018/10/16(火) 18:31:08.20ID:GbK/byr70
そら当然、STL策定直後は当時のコンパイラにはSTLは付いてきてなかったわけで
結構な数のサードパーティが追加ライブラリとして売ってたから
2018/10/16(火) 18:33:54.71ID:u+WV2+U20
>>237
D&E
2018/10/16(火) 18:57:22.46ID:u+WV2+U20
ってD&Eも中古しかないな、すまん
2018/10/16(火) 19:34:49.65ID:TeNN2wBh0
C++ 標準化委員の本

C++テンプレートテクニック 第2版、
επιστημη(えぴすてーめー)・高橋 晶、2014

C++11/14 コア言語、江添 亮、2015
2018/10/16(火) 19:35:39.88ID:2gS77l+u0
>>238
付いて来た某MS標準のSTLが酷い代物でな
2018/10/16(火) 19:37:34.26ID:w/54xJNv0
バカでも読める…Goかな?
2018/10/16(火) 19:41:09.29ID:3k1bGaxFr
>>241
上と下は結構マニアックな感じしますね
真ん中は良さそうです


>>239
今回買わなくてもいずれ読みたいです
これにしても C++ coding standards にしても、需要ないんですかね
2018/10/16(火) 19:44:09.89ID:qu1dabNTM
>>234
これなw
笑えなかったりするが
2018/10/16(火) 20:09:37.15ID:3k1bGaxFr
データ構造とアルゴリズムの本もほしいんだよなぁ
2018/10/16(火) 20:43:54.27ID:+sj1AQoJ0
>>231
こういうこと言う奴に限って3ヶ月後には自分でも読めないクソコード書きやがるからな。。
2018/10/16(火) 21:00:30.49ID:4qUYryqZ0
「俺のコードは馬鹿どもには理解できない!」
2018/10/16(火) 21:18:43.52ID:uMB0oNTuM
>>224
趣味でやってる奴でも結構深いところまで使いこなしてる奴いるし
逆にプロは最新の機能とかをあえて使わなかったりするから一概にはなんとも言えん
2018/10/16(火) 21:34:11.34ID:DXK1BkAG0
>>237
ワイも D&E を推すやで。

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

単純に読み物としても面白いよ。
2018/10/16(火) 21:35:52.97ID:YZqafHqA0
>>212
>神は全盛時までのCだろ

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

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

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

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

プロ名乗るなら。
2018/10/17(水) 03:05:57.24ID:WnKnONn0d
普段使わない言語なんて普通に読めて普通に書けりゃ十分だろ…
257デフォルトの名無しさん (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
2018/10/17(水) 04:55:56.73ID:dMmY0qiN0
>>255
プロは言語の機能を使えるかどうかでなんて勝負しない
書いたコードの性能、わかりやすさ、バグの少なさとかで勝負する
2018/10/17(水) 05:02:17.48ID:WHt6d16aM
>>258
せやな
使うべきときにスマートに使う
これがプロだわな
2018/10/17(水) 07:36:08.50ID:IIN7z2610
RPGとか糞時間の無駄
2018/10/17(水) 07:43:25.83ID:QT9QvtrA0
>>260
敵車両の破壊には有効だが
2018/10/17(水) 07:57:03.78ID:Nvagglal0
今の戦車にゃ効かんだろ
2018/10/17(水) 08:18:18.25ID:DWSbH/V/0
対戦車壕でも掘るか
2018/10/17(水) 09:23:52.75ID:4yuTjZOF0
RPGってあれだろ、IBMの作ったCOBOLもどきだろ、確かに時間の無駄だし戦車には効かんだろ
2018/10/17(水) 09:25:52.61ID:Nvagglal0
ん、ソ連製だよ
2018/10/17(水) 17:39:50.55ID:imhsxBLOM
OpenCVのtemplatematchingについてなのですが、
しきい値を決めて類似度がしきい値以上の物を全探索で複数探すものはあったのですが、
類似度の上位2つのみを探す方法って無いですかね?
全探索は遅いので上位複数個だけ取れたらいいなと
2018/10/17(水) 18:57:16.89ID:QT9QvtrA0
最後の一個が最大だったらどうするの
2018/10/17(水) 19:02:36.72ID:+XF2eq+O0
閾値を適用するコードを探してチャチャっと改造すればいいんじゃね?
つか、最大値を求めるアルゴリズムも知らないのにOpenCVやってんの?
2018/10/17(水) 19:12:33.43ID:9fdgZI6P0
高速に判定できる軽量版データ(部分画像、低解像度、モノクロなど)がありうるなら
それで箸にも棒にもかからないものを高速にふるい落としてから
残ったものだけをちゃんと調べればいいよ
270デフォルトの名無しさん (アウアウカー Sa7b-v5lg)
垢版 |
2018/10/17(水) 20:15:44.53ID:MwWLHD/ka
並べ替えて上位複数個取り出すんじゃダメなん?
2018/10/17(水) 21:50:01.45ID:4yuTjZOF0
>>266は、閾値以上の値を全部取ってくる関数の代わりとして
上位n個(nは定数)を取ってくる関数はないか、ってことだろ?

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

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

>>282
すまん、要素数n個のソート済み配列を1個、で
2018/10/18(木) 00:59:51.74ID:fwCHkrgD0
s/flat_map/flat_set/

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

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

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

元データに後から追加があったら、みたいなことを考えて書いたわけではないです
2018/10/18(木) 02:11:57.61ID:acZxv8zY0
std::upper_bounds とかで挿入位置を決めて挿入、
n個を超えたら小さい方を1つ切り捨てるって感じだよね
たかだか数件ならループで位置を決めてもいい
290デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 03:05:15.05ID:qf9NxgCDa
>>288
なるほど。
今全部分かった。

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

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

どっちがどうとかは、実測しないとなんとも言えなさそう。
2018/10/18(木) 05:26:46.31ID:6XxFpebh0
それってQuickselectみたいな感じ?
https://en.wikipedia.org/wiki/Quickselect
292デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 07:53:42.77ID:qf9NxgCDa
>>291
そっちのが凄い。
任意のnーmまでの範囲だけクイックソートっぽくソートするのか。
最上位(m)からn位までのソートでおkじゃないか。
2018/10/18(木) 08:01:48.62ID:nYU4kM3H0
標準にstd::partial_sortってのがあってな
2018/10/18(木) 19:43:13.60ID:O6IwnbGd0
ほとんど中身を知られていないalgorithmさん
295デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 20:00:49.79ID:qf9NxgCDa
それは >>282,>>290,>>292 書いた私の事だろうか。
そんな呼び名がつくのは光栄だけど、高卒で基本アルゴリズムしか知らないんだ。
その割には悪く無い処理を考えられたと自画自賛してたんだけど、やっぱ頭のいい人の考えるアルゴリズムは凄いね。
2018/10/18(木) 21:00:06.41ID:KO6AKpPQM
ヘッダファイルさんのことだと思うよ…
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有利かな
……で良いと思う
298デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/19(金) 01:22:58.84ID:SjrnPnkZa
>>297
大丈夫、私も同じく沈んだw
純粋に貴方と私のロジックでは、貴方の方が有利という試算なのね。
おk。了解した。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況