[過去ログ]
C++相談室 part164 (1002レス)
C++相談室 part164 http://mevius.5ch.net/test/read.cgi/tech/1683600652/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
119: デフォルトの名無しさん (スッップ Sdea-Q5bc) [sage] 2023/05/26(金) 21:10:27.73 ID:u5i01UPgd 解脱させたらに見えたし http://mevius.5ch.net/test/read.cgi/tech/1683600652/119
120: デフォルトの名無しさん (ワッチョイ 5f7c-aV//) [sage] 2023/05/26(金) 21:19:24.77 ID:cuJor+ml0 「ワイのコードではこう動いてるからいいの!」「ワイが試したらこう動いたからこうなの!」 で突っ走った結果大爆発する事例が後を絶たない http://mevius.5ch.net/test/read.cgi/tech/1683600652/120
121: デフォルトの名無しさん (スプッッ Sd13-Cz+X) [] 2023/05/26(金) 21:27:57.62 ID:TE50P/kBd 未定義まで行かなくても処理系依存とか未規定動作もあるからほんとにややこしい 知らず知らずのうちにコンパイラの拡張機能使ってたりもあるし 「動けばいいんだよ!」としか考えてないとどこで足元掬われるかわからん http://mevius.5ch.net/test/read.cgi/tech/1683600652/121
122: デフォルトの名無しさん (アウアウウー Sa2f-+waq) [sage] 2023/05/26(金) 22:54:23.75 ID:C+URTl/Qa んちんちんちんちんちんち http://mevius.5ch.net/test/read.cgi/tech/1683600652/122
123: デフォルトの名無しさん (ワッチョイ cb01-OHH9) [] 2023/05/26(金) 23:25:57.70 ID:Rw5xxtFh0 >>120-121 そんな低レベルな奴見たことないけどな 居るには居るんだろうけど あと逆にそういうのを「手を動かさない」「実用コードで試しもせずに机上の空論でマウント取る」ことの言い訳にしてる奴を最近よく見かけるのでな http://mevius.5ch.net/test/read.cgi/tech/1683600652/123
124: デフォルトの名無しさん (オイコラミネオ MMeb-owa4) [sage] 2023/05/26(金) 23:42:19.49 ID:mzi7SNrwM 実際VS2005ぐらいに演算の順番が決まってなくて実装依存だった それでコードを書いてた それがVS2007には演算順序が2005と変わってた GCCでも別の順で計算された どうしたらいいかわからんから多分ここに聞きにきたら未定義動作だからどうしようもない 実装依存で仕方がないと返答あり http://mevius.5ch.net/test/read.cgi/tech/1683600652/124
125: デフォルトの名無しさん (ワッチョイ 4b01-nxBO) [] 2023/05/27(土) 00:10:57.47 ID:U8Vd2x100 自分もVCから別環境のclangに数万行のコード移したら未定義踏んでた部分あるけど、試さずにそれを最初から予知出来てたかというと無理がある どちらかのコンパイラのバグで通らなかったりおかしな動作する場合もあるんだし(特にテンプレート周りは多い) 書いてる最中でも疑問に思ったらすぐ調べる癖がついてりゃいいんじゃないかな http://mevius.5ch.net/test/read.cgi/tech/1683600652/125
126: デフォルトの名無しさん (ワッチョイ 6b5f-S+HU) [sage] 2023/05/27(土) 00:12:11.79 ID:ne0x12BC0 >>124 いや、文を分けて順序付けするなり、やりようはあっただろ。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/126
127: デフォルトの名無しさん (オイコラミネオ MM4f-/RYi) [sage] 2023/05/27(土) 00:24:40.55 ID:bsq21T/IM >>126 上にも書かれてるけど既存のコードのどこで問題が発生してるか全てを特定できないんだよ http://mevius.5ch.net/test/read.cgi/tech/1683600652/127
128: 蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-JQ4Y) [sage] 2023/05/27(土) 00:41:28.44 ID:LEdjjvJrd 最近のVisual C++なら「コード分析」機能でコードの改良点を教えてくれるかも知れない。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/128
129: デフォルトの名無しさん (ワッチョイ 3bda-DntA) [sage] 2023/05/27(土) 00:45:08.14 ID:JrAUAXG20 AIが他人が書いたクソコードのリファクタリングやってくれると助かるな http://mevius.5ch.net/test/read.cgi/tech/1683600652/129
130: デフォルトの名無しさん (アウアウウー Sa8f-BLq/) [sage] 2023/05/27(土) 01:23:22.98 ID:D5N3c6HOa 超すごい!人間を越えた!とかワイワイさわがしいAIだが 実際にそういう感じの「マジに困ってる、やってくれたら本気で助かる」 ような事案は結局できない、という地獄 http://mevius.5ch.net/test/read.cgi/tech/1683600652/130
131: デフォルトの名無しさん (ワッチョイ 0bb5-jMfM) [sage] 2023/05/27(土) 04:58:22.78 ID:wRHxWgs90 言われたとおりやるだけ、なやつの極端な例だからな http://mevius.5ch.net/test/read.cgi/tech/1683600652/131
132: デフォルトの名無しさん (ワッチョイ 3bf0-TYVD) [] 2023/05/27(土) 08:03:41.82 ID:hUTpNjv00 AIが人間並みの知性を持てば人間並みにエンバグしてくれるはず http://mevius.5ch.net/test/read.cgi/tech/1683600652/132
133: デフォルトの名無しさん (アウアウウー Sa8f-BLq/) [sage] 2023/05/27(土) 08:08:34.97 ID:ap1zYrbma すごい!まさに人間そのもののAIじゃないか! http://mevius.5ch.net/test/read.cgi/tech/1683600652/133
134: デフォルトの名無しさん (ワッチョイ 6b5f-r/x3) [sage] 2023/05/29(月) 16:30:05.50 ID:AteM0zCG0 責任転嫁するようになるまで人間に並んだとは認めない http://mevius.5ch.net/test/read.cgi/tech/1683600652/134
135: デフォルトの名無しさん (ワッチョイ 0b6e-jMfM) [sage] 2023/05/29(月) 17:54:13.71 ID:I9NccWA+0 会社で嫌われるイヤな奴の特徴を全てプログラミングされたAIとか? http://mevius.5ch.net/test/read.cgi/tech/1683600652/135
136: デフォルトの名無しさん (ワッチョイ 4bc0-3xLk) [sage] 2023/05/29(月) 18:33:58.19 ID:IrTtCTAo0 AIに相談したせいで鬱になって辞める社員が続出しそうだな AIポイゾニングは新手のリモート攻撃として流行るかもね http://mevius.5ch.net/test/read.cgi/tech/1683600652/136
137: デフォルトの名無しさん (ワッチョイ 0b6e-jMfM) [sage] 2023/05/29(月) 20:15:39.44 ID:I9NccWA+0 ヘイテトリスみたいな社員AI http://mevius.5ch.net/test/read.cgi/tech/1683600652/137
138: デフォルトの名無しさん (ワッチョイ 0128-w4Nq) [sage] 2023/06/04(日) 08:29:54.68 ID:5jvZ+YKl0 質問ですがstd::stringに格納された数値文字列を数値にしたい、 しかし数値以外の文字(ただし空白文字は認める)が後ろにくっついていたらエラーにしたい、と言う場合どうす れば良いの? ダチャい書き方ならできうるけど人類はいつまでstrtod()や&(str[0])…… std::string str; str ← なんか文字列入る char* end; double d = std::strtod(&(str[0]), &end); if (end == &(str[0])) { エラー } while (*end != '\0') { if (!std::isspace(*end)) { エラー } end++; } http://mevius.5ch.net/test/read.cgi/tech/1683600652/138
139: デフォルトの名無しさん (ワッチョイ 61f0-7HAn) [sage] 2023/06/04(日) 08:38:19.14 ID:Wo5LOckB0 >>138 まず、こちらへ 0からの、超初心者C++相談室 https://mevius.5ch.net/test/read.cgi/tech/1542002113/ http://mevius.5ch.net/test/read.cgi/tech/1683600652/139
140: デフォルトの名無しさん (ワッチョイ 0128-w4Nq) [sage] 2023/06/04(日) 09:23:46.19 ID:5jvZ+YKl0 誘導されたので誘導先に建てたはサーセン、 http://mevius.5ch.net/test/read.cgi/tech/1683600652/140
141: デフォルトの名無しさん (オイコラミネオ MMe9-N/Lw) [sage] 2023/06/04(日) 11:01:36.99 ID:/SPLhkOjM 文字列(char配列)とstringの仕組みはダサいけど他も大体これ さらにspanもいれる どこも大体同じ http://mevius.5ch.net/test/read.cgi/tech/1683600652/141
142: デフォルトの名無しさん (ワッチョイ edf0-+LPJ) [] 2023/06/04(日) 18:06:29.89 ID:HhL1J/ge0 しかしstodの「文字列が数値で始まる場合、数値化不可能な文字があっても例外は投げずに数値化出来るところまでの部分で数値化する」ってむしろ不便だよな。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/142
143: デフォルトの名無しさん (ワッチョイ eefb-dBHf) [sage] 2023/06/04(日) 18:43:24.19 ID:XolxJINE0 charに変換して文字コード比較して範囲内外で変換分ける処理がシンプルじゃね http://mevius.5ch.net/test/read.cgi/tech/1683600652/143
144: デフォルトの名無しさん (ワッチョイ eefb-dBHf) [sage] 2023/06/04(日) 18:44:47.92 ID:XolxJINE0 速度気になるなら二分探索の処理に追加してやればいいし http://mevius.5ch.net/test/read.cgi/tech/1683600652/144
145: デフォルトの名無しさん (ワッチョイ eefb-dBHf) [sage] 2023/06/04(日) 18:45:10.55 ID:XolxJINE0 再帰処理でやってもいいかな http://mevius.5ch.net/test/read.cgi/tech/1683600652/145
146: デフォルトの名無しさん (ワッチョイ eefb-dBHf) [sage] 2023/06/04(日) 18:45:59.18 ID:XolxJINE0 順序保証したいならリンクリストもありか http://mevius.5ch.net/test/read.cgi/tech/1683600652/146
147: デフォルトの名無しさん (ワッチョイ eefb-dBHf) [sage] 2023/06/04(日) 18:46:48.29 ID:XolxJINE0 ちんこ痒い http://mevius.5ch.net/test/read.cgi/tech/1683600652/147
148: デフォルトの名無しさん (ワッチョイ a101-tVFH) [] 2023/06/04(日) 18:58:47.70 ID:ym4W3arT0 リンクトリストな http://mevius.5ch.net/test/read.cgi/tech/1683600652/148
149: デフォルトの名無しさん (ワッチョイ eefb-dBHf) [sage] 2023/06/04(日) 19:08:45.19 ID:XolxJINE0 内挿探索でも良さそう http://mevius.5ch.net/test/read.cgi/tech/1683600652/149
150: デフォルトの名無しさん (ワッチョイ a236-OEcF) [sage] 2023/06/04(日) 20:01:40.57 ID:0KyMklrL0 STLへの多重配列クラス追加まだ? http://mevius.5ch.net/test/read.cgi/tech/1683600652/150
151: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c23e-N/Lw) [sage] 2023/06/04(日) 22:37:10.94 ID:MHoxWKtY0 >>142 トークナイズするときに便利。 文字列が数値表現だけになっている状態を扱うことってそんなになくない? なんらかの文字列から取り出す操作になることは多いし、 それを前提として考えたら自然な設計だと思う。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/151
152: デフォルトの名無しさん (ワッチョイ 0128-w4Nq) [sage] 2023/06/04(日) 22:54:17.16 ID:5jvZ+YKl0 >>151 >なんらかの文字列から取り出す操作になることは多いし、 まさにそれやが std::stod()ではどこまで読んだのかわからないから取り出せない…… http://mevius.5ch.net/test/read.cgi/tech/1683600652/152
153: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c23e-N/Lw) [sage] 2023/06/04(日) 23:07:59.65 ID:MHoxWKtY0 >>152 わかるが。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/153
154: デフォルトの名無しさん (ワッチョイ 8d7c-vcK2) [sage] 2023/06/04(日) 23:16:49.21 ID:bxWaSYac0 仕様も確認できない奴が仕様に文句付けるとかお笑いだわ http://mevius.5ch.net/test/read.cgi/tech/1683600652/154
155: デフォルトの名無しさん (ワッチョイ b901-1DxI) [sage] 2023/06/04(日) 23:21:12.95 ID:QWRuQk/m0 勉強になるなぁ boost::lexical_cast ばっか使ってきた http://mevius.5ch.net/test/read.cgi/tech/1683600652/155
156: デフォルトの名無しさん (ワッチョイ 0128-w4Nq) [sage] 2023/06/05(月) 01:56:30.15 ID:yTJt/rkc0 >>154 仕様を確認して文句つけているのだから無問題 http://mevius.5ch.net/test/read.cgi/tech/1683600652/156
157: デフォルトの名無しさん (ワッチョイ 0128-w4Nq) [sage] 2023/06/05(月) 02:01:37.37 ID:yTJt/rkc0 つか自分のスキルに合わせて仕様を変えてしまう香具師よりはマシ http://mevius.5ch.net/test/read.cgi/tech/1683600652/157
158: デフォルトの名無しさん (ワッチョイ 0128-w4Nq) [sage] 2023/06/05(月) 02:39:23.25 ID:yTJt/rkc0 つか初心者スレで今教えてもらったわサーセン;;; std::stod()の第2引数でどこまで読んだのかわかるのかそうか、、、 http://mevius.5ch.net/test/read.cgi/tech/1683600652/158
159: デフォルトの名無しさん (アウアウウー Sac5-Rr/m) [] 2023/06/05(月) 09:40:21.73 ID:ejs/048Ga 1e-3 0.4E+5 どうせ . とか + とか - とか e とか E が数字の後ろに来たらエラーにする糞オレオレ関数の出来上がり http://mevius.5ch.net/test/read.cgi/tech/1683600652/159
160: デフォルトの名無しさん (アウアウウー Sac5-+LPJ) [] 2023/06/05(月) 18:46:42.35 ID:QlKvcf+ua fortran爺が1e-3を1-3と書いて送ってくるの辛い http://mevius.5ch.net/test/read.cgi/tech/1683600652/160
161: デフォルトの名無しさん (ワッチョイ 0128-w4Nq) [sage] 2023/06/05(月) 22:24:29.81 ID:yTJt/rkc0 charやwchar_tのうちは文字数くれたら別段間違うことは無いはず…… http://mevius.5ch.net/test/read.cgi/tech/1683600652/161
162: デフォルトの名無しさん (ワッチョイ 916e-UlWg) [] 2023/06/06(火) 05:24:35.89 ID:sRXlIYgz0 0xe5a3ec05p-10 http://mevius.5ch.net/test/read.cgi/tech/1683600652/162
163: デフォルトの名無しさん (ラクッペペ MMe6-aBKW) [sage] 2023/06/07(水) 18:16:46.44 ID:yJ6NJbScM regex 使って、全角半角タブはreplace しつつも、正規表現で、数字だけ残して ってしたらいいのでは http://mevius.5ch.net/test/read.cgi/tech/1683600652/163
164: デフォルトの名無しさん (ワッチョイ 7d02-lxw5) [sage] 2023/06/07(水) 19:51:43.45 ID:Y1IkEaDo0 ファイル名で並び替えるとき数字を文字列じゃなく数として判断して並び替えるの便利だよね。StrCmpLogicalWみたいなの http://mevius.5ch.net/test/read.cgi/tech/1683600652/164
165: デフォルトの名無しさん (ワッチョイ eefb-dBHf) [sage] 2023/06/07(水) 20:17:49.58 ID:Wtu+kJ5G0 digitntegerみたいな関数なかったっけ javaと混同してるかもしれん http://mevius.5ch.net/test/read.cgi/tech/1683600652/165
166: デフォルトの名無しさん (ワッチョイ eed6-hc5i) [sage] 2023/06/07(水) 20:48:56.87 ID:DVJV7mYE0 大文字小文字とか小数とか半角全角とか漢数字とかあるから闇が深い http://mevius.5ch.net/test/read.cgi/tech/1683600652/166
167: デフォルトの名無しさん (ワッチョイ e54e-sceX) [sage] 2023/06/07(水) 21:25:16.49 ID:nzVrXgF60 アンダーバーの位置関係も結構罠だよね 文字コード的には 大文字<アンダーバー<小文字 だから http://mevius.5ch.net/test/read.cgi/tech/1683600652/167
168: デフォルトの名無しさん (オイコラミネオ MMe9-sceX) [sage] 2023/06/07(水) 23:13:43.57 ID:ZHL7BfYmM 言語+コンパイラの仕様が拡張してるのにライブラリは貧弱なまま 自己流に実装してしょうもないバグが紛れ込む 関係ないけどstd::stodはC言語版と微妙に仕様が違うのだろうけどそんなの調べてない http://mevius.5ch.net/test/read.cgi/tech/1683600652/168
169: デフォルトの名無しさん (ワッチョイ 469a-D/IE) [sage] 2023/06/08(木) 00:14:20.61 ID:mm4FKY9+0 例えばstodが解釈できる数値表現を正規表現でも解釈したいと思ったらどうしたら http://mevius.5ch.net/test/read.cgi/tech/1683600652/169
170: デフォルトの名無しさん (アウアウウー Sac5-tVFH) [] 2023/06/08(木) 11:09:51.53 ID:rxjbLVG0a 仕様の不備は運用でカバー http://mevius.5ch.net/test/read.cgi/tech/1683600652/170
171: デフォルトの名無しさん (ワッチョイ b901-1DxI) [sage] 2023/06/09(金) 00:34:29.94 ID:Y9bb1A2p0 std::sort (std::execution::par, v.begin(), v.end()); 上記で並列ソートできるとのことですが何並列なんでしょうか? もし環境に合わせて良きに計らってくれるのなら その良き並列数を取得する関数などありますか? http://mevius.5ch.net/test/read.cgi/tech/1683600652/171
172: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ e53e-N/Lw) [sage] 2023/06/09(金) 01:32:53.73 ID:vjFKJkM00 >>171 詳細は言語仕様では規定されていない。 リソースが不足していれば並列化されないこともあり得る。 並列化は大抵の場合に OS のサポートが必要だし どういうサポートがあるかわからんので言語として明瞭な規定を決められない。 並列化される保証はないのにデータ競合が発生しないように実装するのは プログラマの責任なので若干の理不尽さを感じなくもないが C++ ってのはそういうもんなので……。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/172
173: デフォルトの名無しさん (ワッチョイ 6293-1rII) [sage] 2023/06/09(金) 07:16:14.12 ID:bBOCrSG+0 週末のレイトレーシングで1-17あたりをマルチスレッドにしてみたんだけど、ubuntu上でg++やインテルコンパイラだとスレッド数を増やすと逆におそくなるんです。windows上でvisualstudioでコンパイルすると、望み通りスレッド数を増やすほど速くなりました。何でなんでしょう? http://mevius.5ch.net/test/read.cgi/tech/1683600652/173
174: デフォルトの名無しさん (ワッチョイ eef2-2RXP) [sage] 2023/06/09(金) 08:07:59.94 ID:e2G6/2re0 >>173 >週末のレイトレーシングで1-17 全く意味がわからないんだが? >何でなんでしょう? お前のコーティングのせいじゃないか? http://mevius.5ch.net/test/read.cgi/tech/1683600652/174
175: デフォルトの名無しさん (ワッチョイ 916e-aXLw) [sage] 2023/06/09(金) 08:18:32.57 ID:m5f79nsG0 gccはね・・・どうも平行/並列処理には本気じゃないところがある たとえばstd::execution::parなんか真面目にやらんかこらって言いたくなる http://mevius.5ch.net/test/read.cgi/tech/1683600652/175
176: デフォルトの名無しさん (ワッチョイ 916e-aXLw) [sage] 2023/06/09(金) 08:19:05.88 ID:m5f79nsG0 無料なので強く出られないけどね http://mevius.5ch.net/test/read.cgi/tech/1683600652/176
177: デフォルトの名無しさん (ワッチョイ b901-1DxI) [sage] 2023/06/09(金) 11:49:37.37 ID:Y9bb1A2p0 皆さんレスを有り難うござます うちはstd::execution::parで効果絶大です $ g++ --version g++ (Debian 10.2.1-6) 10.2.1 20210110 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. http://mevius.5ch.net/test/read.cgi/tech/1683600652/177
178: デフォルトの名無しさん (ワッチョイ b901-mwg1) [sage] 2023/06/09(金) 22:45:32.96 ID:uysUozYZ0 なるほどなあ http://mevius.5ch.net/test/read.cgi/tech/1683600652/178
179: デフォルトの名無しさん (ワッチョイ 13ad-2rqm) [sage] 2023/06/10(土) 02:07:59.33 ID:oiDhCbH60 EASTLが久しぶりにバージョンアップしたね http://mevius.5ch.net/test/read.cgi/tech/1683600652/179
180: デフォルトの名無しさん (ワッチョイ c901-7YjN) [sage] 2023/06/10(土) 07:02:46.03 ID:kaZ6v5kb0 ほう!いいね http://mevius.5ch.net/test/read.cgi/tech/1683600652/180
181: デフォルトの名無しさん (ワッチョイ b16b-q0yD) [sage] 2023/06/14(水) 07:54:14.73 ID:/jeWb7sY0 time コマンドで調べたメモリの使用量 (max resident set size) が理論値よりも多くて、原因を特定するためにコード内の各箇所でその時点でのメモリ使用量を出力できたら良いなと思います。 実行環境は Linux なのですが、どのようにするべきでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1683600652/181
182: デフォルトの名無しさん (ワッチョイ b16b-q0yD) [sage] 2023/06/14(水) 08:43:22.06 ID:/jeWb7sY0 あとメモリに関連した質問で、例えばめちゃデカい std::vector を要素数 1 に resize しても capacity はめちゃデカいままですよね? STL コンテナ以外にも、大きいメモリが割り当てられてるオブジェクトを使用後に破棄したいというケースがよくあります。 最も簡単なやり方は関数とか局所的なスコープとして切り出すことかと思いますが、他に、オブジェクトに割り当てられているメモリを手動で解放する方法があったら教えてください。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/182
183: デフォルトの名無しさん (スプッッ Sd33-5Oyn) [] 2023/06/14(水) 08:49:33.85 ID:Xd2fVcpxd /proc/self/stat というファイルを覗きに行くか、 getrusage というシステムコールで取得することになるかな http://mevius.5ch.net/test/read.cgi/tech/1683600652/183
184: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c13e-2rqm) [sage] 2023/06/14(水) 09:19:31.16 ID:O3itrano0 >>182 そのために shrink_to_fit がある。 詳細は実装依存なので何もしない関数であっても仕様に反しないけど 常識的には各実行環境で効率的に動くように実装されるので まずは試してみても損はないと思う。 アロケータを自作してもあまり制御できないんよね。 アロケーションが必要になったらコンテナからアロケータが呼ばれるという 受動的な構造なのでコンテナによるメモリ管理戦略にそれほど関与できるわけではない。 本当にどうしても標準ライブラリの挙動の詳細が不満なら 自分で同等のものを実装する (または望ましいものをどこかから見つける) しかないよ。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/184
185: デフォルトの名無しさん (アウアウウー Sadd-g1CP) [sage] 2023/06/14(水) 10:15:22.04 ID:iWYHYN4ra >>182 new で造って delete (または delete []) で解放 http://mevius.5ch.net/test/read.cgi/tech/1683600652/185
186: デフォルトの名無しさん (ワッチョイ 8bfb-Xx8j) [sage] 2023/06/14(水) 12:28:17.37 ID:XWt8afSz0 更にいうと、deleteはgccでは推奨されないのでptrを使うよりはstaticもしくはvirtualを使いましょうね。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/186
187: デフォルトの名無しさん (テテンテンテン MMeb-jufV) [sage] 2023/06/14(水) 12:29:45.65 ID:XEzvAdInM >>182 >>185とほとんど同じだけどunique ptrで管理。 ヒープの確保時間が問題になるならアロケーター使ってヒープを予約する。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/187
188: デフォルトの名無しさん (ワッチョイ d9f0-EP1b) [sage] 2023/06/14(水) 13:12:37.90 ID:9CAXVpD30 >>182 vector<空にしたいオブジェの要素の型>().swap(空にしたいオブジェ) http://mevius.5ch.net/test/read.cgi/tech/1683600652/188
189: デフォルトの名無しさん (アウアウウー Sadd-g1CP) [sage] 2023/06/14(水) 13:33:02.07 ID:iWYHYN4ra >>188 vector<空にしたいオブジェの要素の型> hoge; が既にあったとしたら vector<空にしたいオブジェの要素の型>(hoge).swap(hoge); で良いらしいけど副作用の心配無い? http://mevius.5ch.net/test/read.cgi/tech/1683600652/189
190: デフォルトの名無しさん (ワッチョイ 219b-q0yD) [sage] 2023/06/14(水) 14:03:16.39 ID:0kIiqVrM0 >>183 ありがとうございます > getrusage を試してみようと思います >>185-187 STL コンテナを使うとしても自作クラスを使うとしても、オブジェクトを unique_ptr で持つことにして要らなくなったら reset() すれば確保していた分のメモリを捨てられるということでしょうか 依存関係が絡み合っていて簡単に小さいスコープに分割できないときは試してみようと思います http://mevius.5ch.net/test/read.cgi/tech/1683600652/190
191: デフォルトの名無しさん (アウアウウー Sadd-g1CP) [sage] 2023/06/14(水) 14:16:54.18 ID:iWYHYN4ra reset()は違うと思う http://mevius.5ch.net/test/read.cgi/tech/1683600652/191
192: デフォルトの名無しさん (ワッチョイ 01da-EP1b) [sage] 2023/06/14(水) 14:26:34.51 ID:HNZbb8Sq0 >>189 その場合はメモリアクセス領域が変わるのでswapする前に取得済みだったイテレータは再取得する必要あり http://mevius.5ch.net/test/read.cgi/tech/1683600652/192
193: デフォルトの名無しさん (ワッチョイ e95f-2rqm) [sage] 2023/06/14(水) 15:52:59.34 ID:K9MvWtl90 >186 が何を言ってるのか意味不明でこわい。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/193
194: デフォルトの名無しさん (ワッチョイ e95f-2rqm) [sage] 2023/06/14(水) 15:54:13.97 ID:K9MvWtl90 >>191 「reset() すれば確保していた分のメモリを捨てられる」で間違いないでしょ。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/194
195: デフォルトの名無しさん (テテンテンテン MMeb-jufV) [sage] 2023/06/14(水) 18:26:24.05 ID:9LyNOs9uM >>190 resetする必要は無いよ。 コンテナから普通に要素を削除すれば、後はコンテナクラスがよろしくやってくれる。効率は実装次第だけど。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/195
196: デフォルトの名無しさん (ワッチョイ 219b-q0yD) [sage] 2023/06/14(水) 18:51:34.14 ID:0kIiqVrM0 >>195 コンテナクラスがよろしくやってくれるのに任せるのであれば、スマートポインタで持たずに単にコンテナとして持つのと変わらないように思うのですが、違うのでしょうか。 ちゃんと理解していなかったら申し訳ありません。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/196
197: デフォルトの名無しさん (ワッチョイ d17c-sLM4) [sage] 2023/06/14(水) 18:58:01.98 ID:vjajEcDc0 vectorを信頼するなら単にclear()してshrink_to_fit()すればいい 信用できないならスマポで持っといていらなくなったら手動でブチ消せばいい それすら信用できないならイチから自分で作れ お前がどれだけ心配消化による http://mevius.5ch.net/test/read.cgi/tech/1683600652/197
198: デフォルトの名無しさん (テテンテンテン MMeb-jufV) [sage] 2023/06/14(水) 19:18:20.42 ID:YeSwNDrrM >>196 どのコンテナを使うかによる。 vectorとかdequeはまだ確保していない要素用の領域をしばしば予約するから、>>182のような状況を回避するのは面倒臭い。 listとかmapは(これも実装次第だけど)まだ確保していない要素のための領域を予約したりしないから、他のデメリットを許容するなら>>182対策の選択肢になる可能性はある。 いずれにしても、そこまで気にするならまずベンチマークを取って実態を調査すべきだし、そもそも巨大なメモリを頻繁に確保・解放するのは設計に問題があることが多いから、メモリを解放しないで済む方法を検討してみる。 http://mevius.5ch.net/test/read.cgi/tech/1683600652/198
199: デフォルトの名無しさん (ワッチョイ 219b-q0yD) [sage] 2023/06/15(木) 03:20:48.20 ID:J1cG0ikp0 >>198 そもそもvectorのスマートポインタ (あるいはより一般的にサイズが動的なクラスのスマートポインタ) を作り、そのvectorやクラスのサイズを変えたときって確保されてる領域のサイズも変わるんでしたっけ? 手動で変えなきゃいけないと思っていました (また、vectorのポインタとvectorの先頭要素のポインタは意味が違うのでよりわけが分からなくなりました) http://mevius.5ch.net/test/read.cgi/tech/1683600652/199
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 803 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s