[過去ログ]
C++相談室 part164 (1002レス)
C++相談室 part164 http://mevius.5ch.net/test/read.cgi/tech/1683600652/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
210: デフォルトの名無しさん (ワッチョイ 13f0-8sUu) [sage] 2023/06/15(木) 18:41:07.51 ID:QIwD56Ju0 最近IPP触り始めたんですが全部飽和演算で面食らってます Modulo関数は無いんですか? http://mevius.5ch.net/test/read.cgi/tech/1683600652/210
211: デフォルトの名無しさん (ワッチョイ fb8c-jufV) [sage] 2023/06/15(木) 21:00:11.51 ID:W1C5TI4i0 >>207 ああ、ごめん。めっちゃデカイインスタンスのvectorじゃなくて、めっちゃデカイvectorね。 それなら実装依存だけど>184か、>192とか参照無効化の制限とかコピーコストとかあるけど>189。189はsmart ptrにしとけば実用上問題ないかね。vectorのイテレーターは保存するものじゃないし。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/211
212: デフォルトの名無しさん (ワッチョイ c14e-8sUu) [sage] 2023/06/15(木) 21:28:08.23 ID:3cvhbwG+0 実際の所、vectorならclear()→shrink_to_fit()でメモリが開放されないこってありうるの? http://mevius.5ch.net/test/read.cgi/tech/1683600652/212
213: デフォルトの名無しさん (ワッチョイ d17c-sLM4) [sage] 2023/06/15(木) 22:10:40.95 ID:usfnoco+0 規格上はshrink_to_fit()にメモリ解放する義務はないし、実装定義で何やっても自由(capacityを増やすような真似だけは禁止) shrink_to_fit()がなんにもしない実装でも一応規格準拠になる そんな糞みたいな実装が実在するかは知らない http://mevius.5ch.net/test/read.cgi/tech/1683600652/213
214: デフォルトの名無しさん (US 0H0b-q0yD) [sage] 2023/06/16(金) 02:13:28.00 ID:PZdB0bgSH >>211 はい結局一人だけ違う話してた ハァァ~~~~~(クソデカため息) http://mevius.5ch.net/test/read.cgi/tech/1683600652/214
215: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c13e-2rqm) [sage] 2023/06/16(金) 11:31:25.61 ID:QEmhRLek0 >>212 基本的には効率的に実装されるものだと信じて良いと思うが どういう実装が効率的であるかは実行環境の事情による。 たとえばメモリ管理がページ単位というのは普通のことだし その場合にページ単位より細かく確保したり解放したりしても非効率になる。 常に何もしないというような実装はあまりないと思うけど 解放するほうが非効率だと考えられる状況では shrink_to_fit を呼んでも解放しなかったり部分的にだけ解放する ということはそれなりにあり得そうだと思うよ。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/215
216: デフォルトの名無しさん (ワッチョイ 01c9-6bUV) [sage] 2023/06/16(金) 12:08:14.46 ID:nWXjt7Za0 capacityと OS側からみた空きメモリはまた別かもしれんわけで アロケーターがOSからじかに要求してる場合もあれば OSへの要求回数を減らして内部でプールしてやりくりしてるのもあるし 制御したいレイヤーによっては全部自前でやるしかない という落ちにも http://mevius.5ch.net/test/read.cgi/tech/1683600652/216
217: デフォルトの名無しさん (ワッチョイ c14e-8sUu) [sage] 2023/06/16(金) 12:26:43.83 ID:B2wRJ7jC0 >>215 まぁ、細かい単位のメモリだったら、実際に開放されているかどうかなんて、ほとんど動作に影響しないとも言えるしね (未初期化変数の不具合が発覚しづらい、くらいか) とりあえずshrink_to_fitを呼んでおいて、細かいことは気にしないのが一番かもしれないw http://mevius.5ch.net/test/read.cgi/tech/1683600652/217
218: デフォルトの名無しさん (ワッチョイ 934f-q0yD) [sage] 2023/06/16(金) 12:46:08.57 ID:H6XPX5qB0 「STLコンテナ以外にも」という文言が読めてない文盲さんたちがvectorの話ばっかしててワロ http://mevius.5ch.net/test/read.cgi/tech/1683600652/218
219: デフォルトの名無しさん (ワッチョイ d969-2rqm) [sage] 2023/06/16(金) 15:41:25.79 ID:KX+TErXo0 「STLコンテナ以外にも」はSTLコンテナも含むということ STLコンテナの話をしても何もおかしくない http://mevius.5ch.net/test/read.cgi/tech/1683600652/219
220: デフォルトの名無しさん (アウアウウー Sadd-g1CP) [sage] 2023/06/16(金) 15:43:23.81 ID:ly+Q1cW8a いつものことだが ほんの最初の数レスで終わってるのに どうでも良い脱線ほど盛り上がってgdgdレスでスレが延びる http://mevius.5ch.net/test/read.cgi/tech/1683600652/220
221: デフォルトの名無しさん (アウアウウー Sadd-Xx8j) [sage] 2023/06/16(金) 15:46:42.75 ID:/DJegtL/a ほんそれ 回答終了してんのにちんこかゆい http://mevius.5ch.net/test/read.cgi/tech/1683600652/221
222: デフォルトの名無しさん (スフッ Sd33-pDI4) [] 2023/06/16(金) 15:49:19.69 ID:YNpYq5+wd >>182 良く読むと >STL コンテナ以外にも、大きいメモリが割り当てられてるオブジェクトを使用後に破棄したいというケースがよくあります。 >最も簡単なやり方は関数とか局所的なスコープとして切り出すことかと思いますが いやいやそもそも「関数とか局所的なスコープ(つまりautoだろ?stackだろ?)で大きいメモリ確保しようなんて思うな」って話なんだよな http://mevius.5ch.net/test/read.cgi/tech/1683600652/222
223: デフォルトの名無しさん (ワッチョイ e95f-2rqm) [sage] 2023/06/16(金) 16:09:01.10 ID:qgM8i0iT0 ローカルなvectorを置けばヒープ確保されるので「つまりautoだろ?stackだろ?」は また何か誤解してる人が来たなとしか。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/223
224: デフォルトの名無しさん (ワッチョイ 219b-q0yD) [sage] 2023/06/16(金) 16:49:22.15 ID:ybGonaVE0 reset要らないとか言ってる奴らは結局何なん http://mevius.5ch.net/test/read.cgi/tech/1683600652/224
225: デフォルトの名無しさん (テテンテンテン MMeb-jufV) [sage] 2023/06/16(金) 19:32:47.80 ID:yx9ngvFiM >>224 結論は>211にまとめといた。 resetは要らん。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/225
226: デフォルトの名無しさん (ワッチョイ 92dc-gfWY) [sage] 2023/06/17(土) 08:56:51.34 ID:3MnK6eEg0 >>223 「STLコンテナ以外にも」という文言が読めてない文盲さんたちがvectorの話ばっかしててωωω http://mevius.5ch.net/test/read.cgi/tech/1683600652/226
227: デフォルトの名無しさん (テテンテンテン MM96-Axrn) [sage] 2023/06/17(土) 10:36:04.78 ID:koF9X0k9M >>226 「大きいメモリが割り当てられてるオブジェクトを使用後に破棄したい」なら >185か>187。 >187はunique ptrの置き場所と解放タイミングによって解放の仕方が違って、自動変数にして関数やスコープから抜けるタイミングで解放するなら手動操作不要、vectorなどのヒープに置くとかスコープの終わり前に解放したいとかならreset()とかvectorの要素削除とかで手動解放。 いずれにしても、自動変数に巨大インスタンスを考え無しに置くのは悪手で、そのオブジェクトがスタックに巨大データを置かない(ヒープ等に置く)ことを確認してからにしたほうがいい。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/227
228: デフォルトの名無しさん (ワッチョイ 6128-l8k0) [sage] 2023/06/17(土) 15:30:36.02 ID:S+64vkUJ0 >>216 vectorのcapacityはそのvectorが氏ぬかcapacity縮小アクションが生じない限りvector固有に占有されるから capacity(のうちsize()を超える分)と OS側からみた空きメモリはまた別でケテーイ…… 一方malloc()がOSからゲットしたメモリをOSに返さずにいるのはOS側からみた空きメモリではないにしろ 同一プロセス内の他のオブジェクトの構築に使えるのだから空きメモリのうち これすらもOSに返したいということならこの流れの中で現状答えがでていないキモヌ http://mevius.5ch.net/test/read.cgi/tech/1683600652/228
229: デフォルトの名無しさん (ワッチョイ 6128-l8k0) [sage] 2023/06/17(土) 15:31:34.82 ID:S+64vkUJ0 まあしいて言えばプロセスを一旦exitして再立ち上げ? http://mevius.5ch.net/test/read.cgi/tech/1683600652/229
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 773 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
2.169s*