[過去ログ] 【初心者歓迎】C/C++室 Ver.101【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
537: デフォルトの名無しさん [sage] 2017/08/25(金) 17:04:11.95 ID:mWX/padL(1/23) AAS
intでいいよ
538: デフォルトの名無しさん [sage] 2017/08/25(金) 17:08:02.77 ID:mWX/padL(2/23) AAS
メンバ関数ごとに型が違うなんて使いづらすぎる
540: デフォルトの名無しさん [sage] 2017/08/25(金) 17:47:23.39 ID:mWX/padL(3/23) AAS
intでサイズ的に十分ならint
541
(1): デフォルトの名無しさん [sage] 2017/08/25(金) 17:48:31.18 ID:mWX/padL(4/23) AAS
>>539
539(1): デフォルトの名無しさん [sage] 2017/08/25(金) 17:28:28.06 ID:te52+8O3(1/5) AAS
intは流石にだめだろ
なぜ?
544
(1): デフォルトの名無しさん [sage] 2017/08/25(金) 18:15:01.16 ID:mWX/padL(5/23) AAS
>>542
542(2): 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/08/25(金) 18:03:18.25 ID:M7y+0IYN(1/2) AAS
>>541
sizeof(int) == 4 && sizeof(size_t) == 8という環境がある。
intは符号あり、size_tは符号なし。
だから、
intで収まるならintで
546
(2): デフォルトの名無しさん [sage] 2017/08/25(金) 18:20:08.57 ID:mWX/padL(6/23) AAS
intをオーバーする心配をするなら
size_tをオーバーする心配も
メモリが足りない心配も
処理が遅すぎて使い物にならない心配も
548
(1): デフォルトの名無しさん [sage] 2017/08/25(金) 18:21:19.25 ID:mWX/padL(7/23) AAS
統一
549: デフォルトの名無しさん [sage] 2017/08/25(金) 18:25:11.29 ID:mWX/padL(8/23) AAS
>>542の環境の場合、多くの場合ムダにデカい変数を扱うことになる

もちろん、巨大なデータを扱う可能性があるならムダではない
と同時に、>>546も心配する必要がある
551: デフォルトの名無しさん [sage] 2017/08/25(金) 18:30:18.05 ID:mWX/padL(9/23) AAS
クラスを使う人が、内部的にvectorを意識する必要もないし、それようにわざわざ専用の型を使う必要もない

intは他の処理でも多く使われているので、使う側からすれば一番変換が少ない

巨大なデータを扱う処理に関する記述で、size_tで統一してるならそれでも
符号無しで統一してるのも考えにくいけど
552: デフォルトの名無しさん [sage] 2017/08/25(金) 18:35:08.21 ID:mWX/padL(10/23) AAS
>>550
550(1): デフォルトの名無しさん [sage] 2017/08/25(金) 18:26:03.20 ID:te52+8O3(4/5) AAS
>>548
何と何を統一するの?

int n = static_cast<int>(v.size());
という面倒な表記?それとも
int n = v.size();
とかいう-Wall で死ぬ表記?

auto n = v.size();
って書かずにキャストをどうしてもしたいのはなぜなのか
そういう面倒なことをクラスのユーザーにさせないため
557
(1): デフォルトの名無しさん [sage] 2017/08/25(金) 19:38:23.61 ID:mWX/padL(11/23) AAS
>>554
554(1): デフォルトの名無しさん [sage] 2017/08/25(金) 19:08:25.29 ID:te52+8O3(5/5) AAS
>巨大なデータを扱う処理に関する記述で、size_tで統一してるならそれでも
符号無しで統一してるのも考えにくいけど

STLのsizeはsize_tで統一されてんのにお前が乱してるんだろw
STLを意識させないためにクラスで包んでるんだろうに
意識させるならパッケージング失敗では?
560: デフォルトの名無しさん [sage] 2017/08/25(金) 19:41:24.55 ID:mWX/padL(12/23) AAS
vectorから他の実装に変えたらクラスの仕様も変えるのか?
561
(1): デフォルトの名無しさん [sage] 2017/08/25(金) 19:42:44.43 ID:mWX/padL(13/23) AAS
>>559
559(1): デフォルトの名無しさん [sage] 2017/08/25(金) 19:40:58.71 ID:g+9HiqWa(4/7) AAS
>>557
だからtypedefやusingを使うって話だよ
いちいちメンバ関数ごとに型を定義する?
本気で言ってるの?
562
(1): デフォルトの名無しさん [sage] 2017/08/25(金) 19:47:10.01 ID:mWX/padL(14/23) AAS
クラスやメンバ関数ごとに型を定義したら、
それらの数値を複数用いて演算した結果はどうすんの?
まさかauto?
563: デフォルトの名無しさん [sage] 2017/08/25(金) 19:50:17.50 ID:mWX/padL(15/23) AAS
クラスが値に関して責任を持つ
当たり前

クラスが値や型に対して責任を持たずにただ値をスルーパスするだけの糞クラスなんかは
ローカルで個人で使う物だけにとどめておきな
564: デフォルトの名無しさん [sage] 2017/08/25(金) 19:51:00.23 ID:mWX/padL(16/23) AAS
ただメールを転送するだけの役に立たない糞上司と同じ
566
(2): デフォルトの名無しさん [sage] 2017/08/25(金) 20:14:31.61 ID:mWX/padL(17/23) AAS
>>565
565(1): デフォルトの名無しさん [sage] 2017/08/25(金) 20:00:01.80 ID:g+9HiqWa(5/7) AAS
>>561
?
クラス内に
typedef typename std::vector<T>::size_type size_type
でいいんじゃないの
vector以外のデータは無いっていう前提?
または、クラスで扱うサイズをすべてそれで統一?

仮にそうだとして、
じゃあ別のクラスのsize_typeや他の型と演算した結果はどういう型にするつもり?
567: デフォルトの名無しさん [sage] 2017/08/25(金) 20:16:04.43 ID:mWX/padL(18/23) AAS
使う側に考えさせる
使う側の手間を考えない実装
568
(1): デフォルトの名無しさん [sage] 2017/08/25(金) 20:18:17.34 ID:mWX/padL(19/23) AAS
vectorをそのまま継承した程度のクラスなら、
当然vectorのインターフェースを保つべきと思うよ
今回はvectorはただのデータのひとつ
569
(1): デフォルトの名無しさん [sage] 2017/08/25(金) 20:19:47.38 ID:mWX/padL(20/23) AAS
実装上、たまたまvectorを使っただけ
もしかしたら変えるかも

といった、ごく普通のクラス設計だと仮定した場合の話
571: デフォルトの名無しさん [sage] 2017/08/25(金) 20:29:55.07 ID:mWX/padL(21/23) AAS
コンテナはただのクラス内のデータのひとつ
内部の設計事情を外部に出す必要はない
572: デフォルトの名無しさん [sage] 2017/08/25(金) 20:32:07.80 ID:mWX/padL(22/23) AAS
>>562 >>566 に対して、何も回答がない
575
(1): デフォルトの名無しさん [sage] 2017/08/25(金) 20:37:36.90 ID:mWX/padL(23/23) AAS
>>573
573(1): デフォルトの名無しさん [sage] 2017/08/25(金) 20:32:27.95 ID:g+9HiqWa(6/7) AAS
>>566
>vector以外のデータは無いっていう前提?
実装を替える必要があるってのは後で作り変えるって意味?それって設計の問題で関係なくね?
静的動的問わずポリモーフィズムするって意味なら最初からそういった設計をするでしょ
今回の話はvectorをラップしているクラスの話でしょ、何で関係ない話を持ち込むの?

>または、クラスで扱うサイズをすべてそれで統一?
size_typeで統一されるならそれでイイんじゃないの?君の言うintに統一と何ら変わらない
それなら内包しているvectorと同じsize_typeを使った方のが余計な記述も減るしバグも減る

>じゃあ別のクラスのsize_typeや他の型と演算した結果はどういう型にするつもり?
それって君の言うint統一でも同じじゃね?

何か話がどんどんズレていない?
私の書き込みの前提は >>568 >>569

クラスの中にvectorやlistや他のコンテナのデータもあるかもしれない
それぞれが、コンテナ独自のサイズの型を定義してるかもしれない
コンテナが返すサイズを加工して返すかもしれない
比較的大きなクラスの話

ただvectorを包んだだけなら当然vectorのインターフェースを継承すべき
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s