[過去ログ] C++相談室 part164 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
483: (ワッチョイ df01-L4gQ) 2023/07/15(土)21:22 ID:wfhnDtnz0(1/3) AAS
単数: datum
複数: data
484: (オイコラミネオ MM71-9/0y) 2023/07/15(土)21:24 ID:UiYhW/dJM(7/8) AAS
今日本屋で○○データムと言う本があった
DATAの単数形がdatumと言うことにこだわる大人って理系だけなんだろうなと感じたらこれだよ
即出て来た
485: (ワッチョイ df01-L4gQ) 2023/07/15(土)21:35 ID:wfhnDtnz0(2/3) AAS
datumに拘ってるのではなくdatasなんて言葉はない
486: (JP 0H8a-PPvg) 2023/07/15(土)21:43 ID:2P0YU21lH(2/2) AAS
そこか、英単語をぐぐったら解決しました。
ありがとうございました
487: はちみつ餃子◆8X2XSCHEME (ワッチョイ 163e-MI76) 2023/07/15(土)21:58 ID:oCSaktaG0(2/3) AAS
>>481
場合による。
見せる相手が最初から限定的であるような場合はフレンドを宣言すればいい。
コンテナ系クラスとかは内部的にはたぶんノードを表すクラスとか
も使ってると思うけどそういう感じで密接に関連がありつつ
他では使う可能性がないような強い関係性がある場合はフレンドにする。
データを保持するためだけの汎用クラスとして定義するならデータメンバは public にしてもかまわない。
std::pair とかはそうなってる。
もうちょっと疎結合にしたいときなら許したい操作だけをpublic なメンバ関数として公開すると思う。
既存のクラスを使いつつ外部に公開するのはサブセットにしたいという場合なら
省15
488: (ワッチョイ df01-L4gQ) 2023/07/15(土)22:04 ID:wfhnDtnz0(3/3) AAS
>>481
privateメンバなのだから
できるだけ外部からそのコレクションを参照しないように設計するべきだと思うよ
どうしてもってならiteratorではなくconst_iteratorにするとか
あなたが書いてるようにconst Data&を返すaccessorを実装するとか
489: (ワッチョイ 847c-zIhc) 2023/07/15(土)22:07 ID:BdK15TwX0(1) AAS
"HogehogeData"という名前で定義されたプログラム上の存在があったら
その複数形はHogehogeDatasと呼ぶしかない
気持ち悪くてもしょうがないんだよ
490: (オイコラミネオ MM71-9/0y) 2023/07/15(土)22:15 ID:UiYhW/dJM(8/8) AAS
ファーストクラスコレクションにしないならその実装は不要だ
基本的に存在意味がない
491: はちみつ餃子◆8X2XSCHEME (ワッチョイ 163e-MI76) 2023/07/15(土)22:20 ID:oCSaktaG0(3/3) AAS
ワイはプログラミング言語 Scheme を使ってるんやが Scheme の仕様には datum という語が出てくる。
シリアライズの単位に関する概念なのでリストひとつも datum と (つまり単数形で) 呼ばれるのが
ちょっとモニョッとする。
492: (JP 0H8a-PPvg) 2023/07/16(日)08:28 ID:PzNRrLhAH(1) AAS
どうでもいいことを突っ込んでる人いますけど
Datas=>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Data=>aaaaaaaaaaaaaaaa
と置換してください
493: (アウアウウー Sa3a-ZX0e) 2023/07/16(日)09:51 ID:Po24/3Vva(1) AAS
hogehogetoyukainanakamatati
で解決
494: (ワッチョイ 3279-EJzg) 2023/07/16(日)16:16 ID:z7qY/utw0(1/3) AAS
powershellはJSONやxmlをその構造のまま扱えたりオブジェクト(PSCustomObject)にも変換できてpythonなんかより小奇麗に書けますよっと
>>478だとif ($a.tsaro.age -eq $a.hanako.age) { ... という具合
495: (ワッチョイ 3279-EJzg) 2023/07/16(日)16:20 ID:z7qY/utw0(2/3) AAS
powershellはC#とシームレスに連携する手段もあってpowershellで苦手な再帰処理とかをC#コードに逃がしてpowershell機能を使いたい部分はActionやFuncから呼び出す事もできますよっと
496: (ワッチョイ 3279-EJzg) 2023/07/16(日)16:21 ID:z7qY/utw0(3/3) AAS
よく見たらここC++スレだね
俺の事は忘れてください
497(2): (ワッチョイ 0928-rP6O) 2023/07/17(月)18:33 ID:mG7BHGLy0(1/5) AAS
質問なのですがclass Datasというクラスがあってstd:::vector<Datas> vec((size_t)100); であるときに
vec[k]の場所にn個の場所を空けたい(値は初期化済Datasオブジェクトなら何でも良い)場合どう書くべき?
やっぱ手動でsz = vec.size(); vec.resize(sz + n);して既存要素vec[k..sz-1]を後ろ(vec[k+n..])にコピーする --- (1)
のが最速?
仮にstd::vector<T>::insertを使うと
Datas x; // (A)
vec.insert(std::next(vec.begin(), k), n, x); // (B)
になると思うのですが、なんか(A)で不必要にオブジェクトを1個構築せねばならないのと
(B)で多分デフォルトコンストラクタではなくコピコンがn回呼ばれるのちょっち嫌
(なぜなら(1)のコピーとn個分の場所の確保に加えて、xをn回コピーするという余デフォルト構築よりも遅そうな処理をするから
498: はちみつ餃子◆8X2XSCHEME (ワッチョイ 163e-MI76) 2023/07/17(月)20:23 ID:YifLUjyU0(1) AAS
>>497
resize だって再配置 (に付随するコピー) の可能性はあるんで
どっちでも大差ないんじゃないかな。
楽だと思うほうで書けばいいと思うよ。
499: (ワッチョイ 915f-9/0y) 2023/07/17(月)21:47 ID:I9Lq0d6Q0(1) AAS
>>497
無駄なデフォルトコンストラクタやコピーを削って極力ムーブで済ませようと思ったら
sz, k, n の大小関係ごとに場合分けして move_iterator 経由の insert とか使い分ければ
いけそうだけど、面倒なわりに見合うほど効率改善しそうな気はしない。
500: (ワッチョイ 82f0-rqn1) 2023/07/17(月)22:08 ID:kACYNrgv0(1/2) AAS
書き込みはそこまで遅くないから労力に見合わないだろうね
501: (スッップ Sd94-v8RM) 2023/07/17(月)22:54 ID:vqJJKRdWd(1) AAS
速度を気にするなら実測しないと始まらないよ。
502(3): (ワッチョイ ae7a-CYkg) 2023/07/17(月)23:18 ID:vGotTgNV0(1) AAS
リアルタイムOSのタスクのように無限ループが前提のとき
TASK Task1() {
while(1) {
Obj1 obj = Device::GetObj();
:
:
}
のようにobjを使う場合に、GetObjが内部でnewされていると、この作りではいつかメモリ不足になってしまいます。
そうなると自作でないクラスのメソッドは使う前にnewの有無をすべて調べなければならなくなるように思います。
実際はそんな不条理はないはずで、このような問題はどう対処するのがいいですか。
上下前次1-新書関写板覧索設栞歴
あと 500 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.016s