[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 03:13 / Filesize : 247 KB / Number-of Response : 1023
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part146



1 名前:デフォルトの名無しさん mailto:sage [2019/11/07(木) 11:35:36.76 ID:4wggfTwe.net]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part145
mevius.5ch.net/test/read.cgi/tech/1568362404/

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

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

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

327 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 19:52:22.88 ID:q8B3tEUN.net]
対称が大事なのって、交換法則が成り立つ計算だから?

328 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 19:54:03.88 ID:nSz8Pwyp.net]
引き算の立場は?

329 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 19:57:18.53 ID:nSz8Pwyp.net]
主役がはっきりしてる場合はメンバ
同等な重要度の時は非メンバ

私の場合はだいたいこんな感じ

330 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 19:58:30.31 ID:nSz8Pwyp.net]
対称かどうかはあまり関係ない

331 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 20:25:32.56 ID:vYtjQlD0.net]
対称性が特に問題になるのはオペランドの型が異なるケースだな
対称な演算a.op(b)をaのクラスに実装したらbのクラスにも同じものをコピペするのか?
C#の演算子オーバーロードがstaticなのはそのへんが理由だとか
Pythonなどのスクリプト言語では基本的にインスタンスメソッドとして演算子を実装するけど、
それは動的型故に事前に実装を解決できないからだね

332 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 20:29:53.87 ID:EGeQZX97.net]
>>317
かつて非メンバ関数のオペレータを名前空間の外から呼び出そうとするととても残念な気持ちになるからじゃね

333 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 20:44:42.44 ID:0U9h+SK3.net]
オペレータオーバーロードを使うとカッコイイ気分にひたれるからだろ
それ以外の理由なんてあるのか?

334 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 20:45:44.57 ID:E2H9effp.net]
private変数の書き換えを伴うものだけメンバだな
Pointが座標値しか持ってないようなのならコンストラクタ以外は持たせない

335 名前:デフォルトの名無しさん mailto:sage [2019/11/28(Thu) 01:38:08 ID:PoPpbfsh.net]
代入は普通メンバだろ

=
+=
-=
*=
/=

[ ]も



336 名前:デフォルトの名無しさん mailto:sage [2019/11/28(Thu) 01:44:12 ID:PoPpbfsh.net]
当然符号も

337 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2019/11/28(Thu) 02:14:28 ID:+45JwpRI.net]
>>303
これは後者が良い場合が多い。
型変換の対称性が絡むんだよ。

たとえば std::tuple<double, double> から Point への変換コンストラクタが用意されているようなとき、
メンバ関数として実装されていると左辺ではこの型変換が考慮されず、右辺では考慮されるということになる。

338 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 02:50:39.48 ID:4GnG2KNj.net]
>>329
代入系と添字はそもそもメンバとしてしか書けない

339 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 06:43:27.57 ID:PoPpbfsh.net]
>>332
>>328に言って

>>331
対称性は関係ないって
Point * double
だって型変換された方が都合が良いなら非メンバだろうに

340 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 08:02:30.92 ID:A3g54Di2.net]
>>316
ほーう?
そんなことすら知らないのかww

341 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 08:09:05.07 ID:YpOyjZW5.net]
>>334
ハッタリしかできることねえようだな
まあ、そうだろう

342 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 08:20:32.24 ID:PoPpbfsh.net]
フラグメントが問題になるならアロケート専用で解放出来ないようにするとかそもそもアロケート出来ないようにするとか
固定サイズを頻繁になら独立させておけばフラグメントしない

343 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 08:21:42.93 ID:PoPpbfsh.net]
ヒープはヒープで1個の研究分野になるくらい
いろんな技術、方法がある

344 名前:はちみつ餃子 mailto:sage [2019/11/28(木) 17:46:42.56 ID:+45JwpRI.net]
>>333
???
理解できないのでもうちょっとくやしく

345 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 18:11:40.54 ID:PoPpbfsh.net]
>>338
今回たまたま対称であったというだけで
対称性が理由じゃないってこと

ベクトル※ベクトル
ベクトル※スカラー
ベクトル※行列
ベクトル※矩形

なんであれ型変換された方が良いなら非メンバ



346 名前:はちみつ餃子 mailto:sage [2019/11/28(木) 18:23:49.08 ID:+45JwpRI.net]
>>339
なるほど、一般化した場合の話になってるわけね。

347 名前:デフォルトの名無しさん [2019/11/28(木) 19:15:35.47 ID:nxFPf5Ar.net]
begin()とend()があればRangeなんですか?

348 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 23:41:46.98 ID:iCLeSa8c.net]
だいたいそうよ

349 名前:デフォルトの名無しさん [2019/11/29(金) 04:19:50 ID:KHTBF+uC.net]
そうですか。
どうもありがとうございます。

350 名前:デフォルトの名無しさん [2019/11/29(金) 08:06:17 ID:R3LtoROu.net]
新明解C++買ったけどなにもしてない

351 名前:デフォルトの名無しさん [2019/11/29(金) 08:29:36 ID:KHTBF+uC.net]
std::uint8_tってstd名前空間にあるけど、名前空間で修飾しなくても使えるのは何故ですか?

352 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2019/11/29(金) 08:53:08 ID:7m3ynrwG.net]
>>345
usingを使っているから。

353 名前:デフォルトの名無しさん [2019/11/29(金) 09:06:38 ID:KHTBF+uC.net]
>>346
自分でusingしてなくても大丈夫ですか?

354 名前:デフォルトの名無しさん [2019/11/29(金) 09:34:32 ID:N/f9f1S7.net]
a[i] = b;
みたいなのき
a に対して a.setitem(i, b); するのと
a.getitem(i) が参照を返す様にしておいて a.getitem(i) = b; するのと
どっちが正解?

355 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 09:41:11.46 ID:B0LTR+GE.net]
JavaのArrayListは a.get(i) = b; になってるので長いもんには巻かれろと思考停止で真似るだけ



356 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 11:40:28.80 ID:oVgX/GuB.net]
>>345
#include <cstdint>は
#include <stdint.h>
つまりCのライブラリだからだ

typedef unsigned char uint8_t;

#ifdef __cplusplus
namespace std {
using ::uint8_t;
}
#endif

こうなっているだけだ

357 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 11:53:00.94 ID:Ml/gOmNO.net]
さすがに整数型にまでstdつけるのはうざい
なのでcのヘッダーを使ってる

358 名前:デフォルトの名無しさん [2019/11/29(金) 12:40:38.17 ID:pYMGuCeV.net]
stdを省略する方がウザい

359 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 12:45:20.21 ID:gmGtMFq3.net]
何の情報も増えないし紛れも何もない

意味の無い情報に5文字も余分に使いたくない
画面も入力の手間も

360 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 12:47:51.78 ID:gmGtMFq3.net]
int8_t がcharで、std::int8_t がsigned char とか?
それは御愁傷様

361 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 12:52:13.51 ID:lef7gBlN.net]
STL使ってスタティックビルドしてるコンソールプログラムあるけど、
ファイルサイズ 400KBぐらいだな。圧縮した状態で200KB
これが20KBぐらいに減るのかー、でも誰も喜ばないだろうな。

362 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 13:01:25.99 ID:0dBBAnUQ.net]
STLつかうと一気に実行ファイルサイズが10倍に?!

環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない

すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。

363 名前:はちみつ餃子 mailto:sage [2019/11/29(金) 14:15:39.12 ID:J8eB3+F9.net]
>>350 >>350
cstdint 内の名前はマクロを除いて std に入るはず。
グローバル名前空間でも定義されるかどうかは処理系定義じゃなかったっけ?

逆に stdint.h 内の定義はグローバル名前空間でアクセスできるけど、
std 内でも定義されるかどうかは未規定だったように記憶してる。

仕様を読み返すのが面倒なので誰か調査よろ。

364 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 14:21:40.41 ID:Tp6caFY5.net]
変数名をメモリやオーバーヘッド無しでエイリアスつける方法ありますか?
メンバ変数に shared_ptr<Data> m_data; みたいなのがあるとして
using text = this->m_data->member.text;
みたいに使いたい変数だけ別名で取り出したい

365 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 14:30:09.62 ID:oVgX/GuB.net]
現実問題としてCのライブラリをstdに入れるということ自体が馬鹿げた話だ
今の流れはuint8_tの話だが、extern "C"の関数は装飾名に名前空間が含まれない



366 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 14:35:12.66 ID:yQ0DwMtc.net]
>>358
一番簡単なのは、
auto &text = this->m_data->member.text;
とすることです。

367 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 14:37:49.63 ID:Tp6caFY5.net]
>>360
現状それでやってますが、コンパイル時に確定できるのなら他に方法があるのかと思いました

368 名前:はちみつ餃子 mailto:sage [2019/11/29(金) 14:45:49.13 ID:J8eB3+F9.net]
>>361
そういう簡単なケースだと最適化でちゃんと消えてくれるんじゃね?

369 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 14:56:28.90 ID:KzrCIvE1.net]
参照解決のコストすら嫌なら
#define text this->m_data->member.text

370 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 14:56:51.37 ID:GB3X2IZU.net]
コンパイル時に確定してるじゃん

371 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 15:07:19.89 ID:M3WjIH4t.net]
むしろもとの書き方だと2度参照解決して3度足し算しているような…

372 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 15:21:18.81 ID:YkvT9y9m.net]
textに実行時にアクセスするなら
いずれにしろアドレス計算は必須になる

>>360のようにすれば
最適化がうんこで複数回計算されるのを防ぐ可能性すらある

アクセスしないならおそらく最適化によってアドレス計算コードは生成されない

373 名前:デフォルトの名無しさん [2019/11/29(金) 15:50:36.19 ID:N/f9f1S7.net]
inline付けるとかえって損か

374 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 17:45:51.93 ID:/RbGsSZk.net]
m_data の型が shared_ptr<Data> なことを気にしてるのかな。
shared_ptr の指す先のメンバを参照変数でバインドするのは無作法か、とか。

と言うか、上の話は俺の疑問でもあるんだけど。

375 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 18:15:50.93 ID:4DEcYZGM.net]
->
に副作用があるならそりゃ話は別だ



376 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 18:44:49.74 ID:xP2G2+ZO.net]
STLつかうと一気に実行ファイルサイズが10倍に?!

環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない

すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
え?リリースするときスタティックリンクして配布するのかって?
ダイナミックリンクするけど?

377 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 18:46:27.54 ID:xP2G2+ZO.net]
STLつかうと一気に実行ファイルサイズが10倍に?!

環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない

すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
え?リリースするときスタティックリンクして配布するのかって?
ダイナミックリンクするけど?
え?なんで俺が笑われてるの?

378 名前:デフォルトの名無しさん [2019/11/29(金) 20:21:36.93 ID:KHTBF+uC.net]
どうもありがとうございます。

379 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 16:27:23.28 ID:4Yq6PogE.net]
constexpr定数とconst定数って結局何が違うの?

380 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 16:40:26.74 ID:WebQyLi7.net]
コンパイラに対する単なるヒント
優れたコンパイラでも糞コンパイラでも動きほ同じ
中途半端なコンパイラだと最適化のレベルがもしかしたら違うかも
コンパイル単位にもよる

381 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 17:34:29.84 ID:sGzVq6Pz.net]
constexpr定数はコンパイル時に値が確定することが保証されている

382 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 17:35:37.90 ID:iKPiHg5H.net]
>>373
constexpr定数はconstexprな文脈を作る。つまり、
constexpr int a = func()
とするとfunc()はコンパイル時に実行される。当然constexpr関数でなければならない

一方、const定数はconstexprな文脈は作らない
const int a = func()
とした時、func()は実行時に処理される。constexpr関数である必要はない

383 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 17:40:18. ]
[ここ壊れてます]

384 名前:51 ID:4Yq6PogE.net mailto: ああ、初期化に関数を使うと違いが出るんですね
それにconstexprの場合は初期化が保証されていると
ありがとうございました
[]
[ここ壊れてます]

385 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 01:46:51.73 ID:j3uX5vWG.net]
constexprの強みは、配列のサイズみたいな定数を要求される文脈で使えるってこと。
const変数だとこれができないから、昔はマクロで定数定義するしかなかった。



386 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 01:49:20.00 ID:Hj4I5N6m.net]
>>378 C++ではconst変数も一部定数式扱いになってたでしょ。だから>>373みたいな疑問が出る。

387 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 01:54:44.83 ID:Nfz3Rlxp.net]
sizeofと何が違うんだ

388 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 08:35:44.43 ID:7fh/nHBZ.net]
constは設計ミスが多いな

389 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 08:36:58.95 ID:7fh/nHBZ.net]
とても神リッチーが作ったように見えない

390 名前:デフォルトの名無しさん [2019/12/01(日) 10:24:23.58 ID:gHT6E7kc.net]
STLにはなぜ木が無いのですか。

391 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 10:27:51.87 ID:sKSeAmO2.net]
大昔のC言語時代に考えた物だから
関数を使った初期化が出来ない時代の

392 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 10:31:53.72 ID:sKSeAmO2.net]
>>383
std::set とか、内部は木じゃね?

汎用的な木?
ポインタのvectorで良くない?

393 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 10:56:13.36 ID:SqfEoEmM.net]
Javaでも.NETでも標準ライブラリに木は無いだろ
木はメモリへのシリアライズの仕方を工夫せずに素直にノード毎にnewしてたら殆どあらゆるケースにおいてクッソ非効率なデータ構造なので、
標準ライブラリとして提供する意義が薄い
誤った選択肢を提供することで余計にパフォーマンスを低下させることになるだけだ

394 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 11:03:00.54 ID:sKSeAmO2.net]
listもsetもノードごとにnewしてるけど

395 名前:デフォルトの名無しさん [2019/12/01(日) 11:15:38.03 ID:gHT6E7kc.net]
ダブルアレイを変形させて木を表現できないでしょうか。
子は親のIDを知っていれば良く、親は子の個数を知っていれば良いので、出来そうな気がするのですが。



396 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 11:16:42.54 ID:SqfEoEmM.net]
>>387
うん。だから遅いよ。

397 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 11:29:39.61 ID:7fh/nHBZ.net]
だから形容詞には比較や数値をつけろってば
それじゃ健康産業で不安を煽る悪徳業者そっくりだろうが

398 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 11:50:38.89 ID:p3Z7Nr0h.net]
遅いlistやsetがstlに入っていて使われ続けてるんだから
stlに入れない理由にはならないってことだよあほ

399 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 11:53:33.72 ID:rKmqg7A0.net]
いやそんなもん使うやつらがそもそもc++使う必要がねーって話だわ

400 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 11:55:51.88 ID:YWi4MX0G.net]
それはお前の個人的な意見?
それとも何かデータでもあるの?

401 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 12:11:13.07 ID:p3Z7Nr0h.net]
listやsetが適した用途があるから存在してるんだけどね
使いどころ間違ってるんじゃない?

402 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 12:14:27.64 ID:p3Z7Nr0h.net]
同じ用途なら
newやdeleteを使わなかったとしても
結局ノード作成時に空きエリアを探すことになるわけで

403 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 12:17:14.00 ID:p3Z7Nr0h.net]
ノード追加専用のスペシャルlistやsetなら速くなるけど
それはもはやlistやsetじゃない

404 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 12:21:44.69 ID:vEIKl7N1.net]
プログラムのすべての部分で最速の選択をする必要なんて全く無いのに>>392みたいなことを言うやつはCかFortranで書けばいいんじゃないかな

405 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 12:29:30.42 ID:SqfEoEmM.net]
>>394
残念ながら、setはともかくlistが適しているシーンは実際にはほとんどない
途中への少数の要素の挿入削除が頻繁にあって事前にその位置が分かっている状況などどれほどあるというのか



406 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 12:32:06.35 ID:p3Z7Nr0h.net]
>>398
使いどころがわからないなら無理して使わなくて良いんだよ

407 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 12:33:53.83 ID:SqfEoEmM.net]
>>399
具体例を示そうね

408 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 12:34:14.31 ID:p3Z7Nr0h.net]
>>397
10%の高速化なら無視すればいいけど
1000倍とかなら考えるだろ?
vectorとlistとsetの選択を間違えると
そのくらいの差が出る
データ数が多ければ

409 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 12:41:44.01 ID:IheeS71f.net]
ソートが早い

410 名前:デフォルトの名無しさん [2019/12/01(日) 12:47:37.78 ID:gHT6E7kc.net]
イテレータの安定性が。

411 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 12:53:47.75 ID:ZEhocPVE.net]
>>397
最速のものを使う必要はないがそもそもアルゴリズムオーダーが間違ってるようなものを
使うってのは頭悪すぎるし、なぜc++使ってんの?バカなの?ファッション?
って気にしかならん。

412 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 12:57:04.85 ID:7fh/nHBZ.net]
「そんなもん使う」なんて全面否定しといて
今さらアルゴリズムオーダーとか言い出すのは見苦しい

413 名前:デフォルトの名無しさん [2019/12/01(日) 12:58:17.95 ID:gHT6E7kc.net]
木とグラフが足りないと思います。

414 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 12:58:25.43 ID:n5DjgtsH.net]
イニシャルコストとランニングコストがあるだろ
数か月〜数年間止まらないようなソフトウェアだと初回起動時のデータ読み込み10億件・数分程度は誤差で済む

415 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 13:00:02.95 ID:IheeS71f.net]
現存するあらゆるコンテナを実装してくれ



416 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 13:00:34.69 ID:YWi4MX0G.net]
>>401
> 1000倍とかなら考えるだろ?

いや? 0.0001ミリ秒が0.1ミリ秒になったところで
大した問題じゃないからね

417 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 13:02:56.20 ID:7fh/nHBZ.net]
実害が出るかどうかはケースによるのに
全てお見通しの仏様か何かになったつもりのやつが変なことぬかすんだよな

418 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 13:08:14.41 ID:p3Z7Nr0h.net]
>>409
1分と1000分なら大違い
トータル0.1ミリ秒なら何でも良いよ気にするな

データが多い時の話
オーダーが効いてくる

newの時間なんてオーダーの差に比べれば誤差
毎回newだから遅いとかトンチンカン

419 名前:デフォルトの名無しさん [2019/12/01(日) 13:09:03.33 ID:gHT6E7kc.net]
Boostにイテレータが安定なvectorがありますが、速度はlistに劣る場合があると但し書きがありますよ。

420 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 13:16:11.26 ID:p3Z7Nr0h.net]
データ構造は
list, set, リニア(vectorやdeque) で揃ってる
これでオーダー的には大抵は問題ない

微妙な高速化が必要なら専用を自作すれば良いが
組み込みでもなければ必要となることはあまりない

複雑なデータ構造は、
標準のデータ構造を組み合わせて作る
複雑なリンク構造はSLAMの世界だとよく使う

421 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 13:20:19.28 ID:ZEhocPVE.net]
いや明らかにsetのオーダーに問題あるだろ。

422 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 13:23:43.76 ID:p3Z7Nr0h.net]
えっ?

423 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 13:25:41.03 ID:ZEhocPVE.net]
思考停止してないでこれくらいは読んでくれよ。。
https://cpprefjp.github.io/reference/set/set.html

424 名前:デフォルトの名無しさん [2019/12/01(日) 13:31:07.65 ID:gHT6E7kc.net]
読みました。

425 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 13:31:36.80 ID:B2zYeZ5e.net]
メモリの再配置が起こると都合が(あるいは効率が)悪いオブジェクトを比較的頻繁にnew/deleteしつつ、
一覧を保持しておく用途にはlistが適していると思う。
あ、でも、本体をdequeに、ポインタをvectorに入れて管理する方が速いかな? バグりそうで恐いけどw



426 名前: mailto:sage [2019/12/01(日) 13:51:31.01 ID:mRJ420VP.net]
>>386
木をそこまで悪くいう人を初めて見かけました、大概のデータ構造は木だと思うのですけど…

427 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 13:56:38.18 ID:p3Z7Nr0h.net]
下手くそが巨体な木を作るとひどいって話だろ
下手に作らなきゃ良いだけ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<247KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef