15/01/04 20:58:50.58 ZWEZbTe4
みなさんありがとうございます
競プロで書いているときにbeginとかendを書くのが大変だったので
なにか楽な方法を探してました
a.swap(c)とかa.insert(b.begin(), b.end())は全然思いつかなかったので参考になりました.使わせてもらいます
とりあえず他のintersectionとかはラッパ書いて処理してみます
ありがとうございました
362:デフォルトの名無しさん
15/01/04 22:30:48.07 kU4tFNpU
>>349
なるほど、確認した。半年前の話か‥
363:デフォルトの名無しさん
15/01/05 22:33:25.30 f33/Q9TD
前スレにあったプライベート変数にアスセスするコードをようやく理解した。
ほぼコピペだが記念に貼っとく
URLリンク(ideone.com)
364:デフォルトの名無しさん
15/01/06 01:36:28.96 vDyOmCN+
何でそんな事したいのか分からないけど、初期化時にポインタ受け取れば済むような
365:デフォルトの名無しさん
15/01/06 14:33:17.28 SaW7LnEX
C++のstd::listってガベージコレクションはしていないんですよね?
フラグメンテーション起こさないようにするためにはどっか別に固定領域を確保してそっからデータ持ってくるようにしないと
ダメでしょうか?
366:デフォルトの名無しさん
15/01/06 14:40:08.17 C2mmH5Le
はい
367:デフォルトの名無しさん
15/01/06 18:04:47.26 22vat4md
いえ、してますよ
マークアンドスイープ方式のガベージコレクションをしてないだけで
368:デフォルトの名無しさん
15/01/06 18:34:47.65 0kbQZJFE
フラグメンテーションとGC直接関係ないし
369:デフォルトの名無しさん
15/01/06 19:11:45.23 XxVOSZ3z
コンパクション(メモリのデフラグ)も行うコピーGCのことを言っているんじゃないかと
しかし、時代はGCじゃないよねぇ。時代は参照カウントだよ。
C++11でも、shared_ptrが追加されたし。
シンタックスがどんどん汚くなっていくのはC++の悲しいところだな。
370:デフォルトの名無しさん
15/01/06 19:24:03.99 Ey7XFEeM
>時代は参照カウントだよ
へー、そいつは凄いな
371:デフォルトの名無しさん
15/01/06 22:59:26.61 Y26C2d1q
そういや、shared_ptr ってオブジェクトレベルでマルチスレッド対応してるんかな?
372:デフォルトの名無しさん
15/01/06 23:01:02.23 a1JT3SDg
>>242
遅くなりましたがあなたのお陰で解決しました。ありがとうございます!
373:デフォルトの名無しさん
15/01/06 23:11:59.71 Z2lMmRuz
>>371
標準ライブラリは「constメンバ関数=マルチスレッド対応」で統一していたはずだが
374:デフォルトの名無しさん
15/01/06 23:53:02.99 kiKfNKwr
>>369
シンタックスそんなに汚いかなあ、C++11
375:デフォルトの名無しさん
15/01/07 00:17:19.84 Y9yyLQNc
>>373
じゃあ、コピーコンストラクタや代入演算子はダメなのかねー。
スマポの魅力半減。
昔、参照カウンタ方式のstringでエライ痛い目みたからなー…
376:デフォルトの名無しさん
15/01/07 00:20:45.94 A8Vu2ukb
>>375
代入はだめだろ
けどコピーコンストラクタは、仮にもコンストラクタだし、オブジェクトを構築してるスレッド以外から手の触れようがないと思うが
377:デフォルトの名無しさん
15/01/07 00:23:58.83 J9Js0gVS
shared_ptr自体はマルチスレッドに対応してるだろ
マルチスレッドでどれだけ参照を増やそうが減らそうがdeleteされなかったり2重deleteしたりしない
378:デフォルトの名無しさん
15/01/07 07:10:13.57 Re9e7Fnn
それは君の環境で「自分で同期したら問題なく動いた」ってだけでは?
379:デフォルトの名無しさん
15/01/07 09:05:13.51 DkZd7T6D
異なるshared_ptrに対する操作ならデータ競合を起こさないことが保証されてるよ
URLリンク(faithandbrave.hateblo.jp)
同じshared_ptrに対する更新などの操作をデータ競合を発生させずに行うためのものも提供されてる
URLリンク(en.cppreference.com)
380:デフォルトの名無しさん
15/01/07 09:13:45.90 v+HQiVT1
WinのInterlickedExchage関数, QtのQAtomicIntみたいなもんか
型がTなのでより進化してるけど
381:デフォルトの名無しさん
15/01/07 13:47:42.98 rq5tkzs4
>>379
それと所有するオブジェクト自体を複数のスレッドから操作する場合はmutexが必要になると。