[過去ログ] C++相談室 part164 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(1): (ワッチョイ 33da-QP0H) 2023/05/09(火)11:50 ID:EYc2I7oW0(1) AAS
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
C++相談室 part163
省1
2
(1): (スプッッ Sd97-Itme) 2023/05/09(火)17:29 ID:fBzPCnLFd(1) AAS
>>1

3: (ワッチョイ df01-ouLR) 2023/05/10(水)05:46 ID:v0BqkWXe0(1) AAS
>>2
よく見たらそれ乙じゃなくてポニーテールやん
4: (スプッッ Sd97-Itme) 2023/05/10(水)07:28 ID:htltMOsRd(1) AAS
どゆこと?
5: (テテンテンテン MMde-qVtI) 2023/05/12(金)20:00 ID:mYlAeNCAM(1) AAS
class template みたいなノリで、namespace templateとかできないかね。
ユーザーカスタマイズくらいしかメリット無いけど。
6
(2): (ワッチョイ 6f9a-syTp) 2023/05/13(土)07:51 ID:JxNjXH3v0(1/4) AAS
ある整数のペアが既に出てきたかどうかを管理したいのですが、
安直に unordered_set(pair<int, int>> としたら、これはハッシュ関数を定義してあげないと
使えないんですね。
ネット上で見かけた良さげなハッシュ関数の例をコピーする手もあるのですが、
これ以外で楽なやり方(データ型)ってありますかね?
7
(3): (テテンテンテン MM7f-hs0w) 2023/05/13(土)08:05 ID:qcT1eyp6M(1) AAS
職業プログラマに聞きたいんだけど
自分でソフト屋なんて言ってるけど、ほぼ全てを外注に投げて自分ではろくに書けないなんての普通のことなの?

今年から社会人になったんだけど、先輩たちのレベルが低すぎて失笑してる日々です。

c言語、クラスという単語をドヤ顔で宣ってる先輩達。
classを解釈できるcコンパイラがあるのかな
8: (ワッチョイ cf34-+/XS) 2023/05/13(土)08:10 ID:Er9DBy9d0(1/2) AAS
俺は自分がそうだったら恥ずかしくてプログラマなんて名乗れないけど
世の中には色んな人がいるからね
まあ俺の価値観では普通じゃない

クラス、つまりオブジェクト指向は何言語を使うかじゃなく頭の中の考え方だから
++じゃないCでも使っていい用語だよ
9: (ワッチョイ 6f9a-syTp) 2023/05/13(土)08:20 ID:JxNjXH3v0(2/4) AAS
>>6
ちなみにPythonだと辞書や集合にタプルをデフォで入れられるんですよね...
C++も同様のサポートをして欲しかった気が
10: (ワッチョイ 3302-Cej3) 2023/05/13(土)08:32 ID:/V+1J/0r0(1) AAS
>>7
板違い。マ板へ行け
あと5chは不満のはけ口じゃない。そういうのはママにでも慰めてもらえ
11
(1): (スップ Sd1f-ammQ) 2023/05/13(土)09:16 ID:uFhfbSODd(1) AAS
>>6
単に vector とかのコンテナに入れて find とかで既出判定すればいいんじゃないかな。
12: はちみつ餃子◆8X2XSCHEME (ワッチョイ ff3e-Phjm) 2023/05/13(土)09:44 ID:vqN1nVlv0(1) AAS
>>11
数が特に少ないときならそれでもいいけど
普通に考えたら実行コストが大きすぎるだろう。
13
(1): (ワッチョイ cf34-+/XS) 2023/05/13(土)09:49 ID:Er9DBy9d0(2/2) AAS
ハッシュ関数を定義してあげないと使えないって
定義すれば使えるだろ

何が問題なんだ?
14
(1): (アウアウエー Sadf-OfPZ) 2023/05/13(土)10:30 ID:W/YCRtGia(1) AAS
単にset<int, int>じゃダメなの?
場合によっちゃあmap<int, set<int>>のほうが容量ケチれそうだけど?
外部リンク:ideone.com
{
std::set<std::pair<int, int>> s;
s.emplace(1, 1);
s.emplace(1, 2);
省16
15: (ワッチョイ f37c-rSo2) 2023/05/13(土)11:16 ID:giA7vv3r0(1) AAS
後者だったらstd::multimapでよくね
unorderedでもいいけど
16
(1): (アウアウウー Sa67-ayqt) 2023/05/13(土)13:46 ID:0/cn7SoCa(1) AAS
>>7
WNDCLASS
RegisterClass
UnregisterClass
WNDCLASSEX
RegisterClassEx
GetClassName
省3
17: (テテンテンテン MM7f-hs0w) 2023/05/13(土)19:14 ID:23Ow1LiAM(1) AAS
>>16
君もc++を学習しなおせ
18: (スップ Sd1f-MiYm) 2023/05/13(土)19:17 ID:acArdvJWd(1) AAS
>>7
ソフト屋という大きなカテゴリの中でコーダーとは役割が違うだけでコーディングスキルだけを見て優劣を考えるのは短絡的な判断だよ
必要なスキルなんて立ち位置次第で全く異なるんだから
19
(1): (スプッッ Sd1f-zj+H) 2023/05/13(土)19:23 ID:lAh8QD2cd(1) AAS
コード書けないリーダーは事務方に徹してくれるなら別にいいんだよ
そうじゃないやつが迷惑ってだけ
コーダーをバカにするやつはすべてこれ
20: (ワッチョイ 6f9a-syTp) 2023/05/13(土)19:32 ID:JxNjXH3v0(3/4) AAS
>>13
よく使うものはシステム側でハッシュ関数を用意してくれると助かるな、的な
あともしショボいハッシュ関数を使ったら性能が落ちますし、ってそれも自己責任かw

>>14
setは悪くないですね。ただパフォーマンスにシビアになる場合はunordered_の方を
使いたいかなと。こちらもちゃんとしたハッシュが前提になりますが
21
(1): (オイコラミネオ MMc7-ZkZz) 2023/05/13(土)21:58 ID:TFo/sDKRM(1) AAS
int int → long
何にでも突っ込め
22
(1): (ワッチョイ 73da-M4GN) 2023/05/13(土)22:42 ID:2eXxQqWR0(1) AAS
long long int
23: (ワッチョイ 6f9a-syTp) 2023/05/13(土)23:57 ID:JxNjXH3v0(4/4) AAS
>>21 >>22
片方の値をシフトして足すということですよね? 確かにアイデアですね
似たような感じでint -> intのマップをソートするというのを見たことが
24: (ワッチョイ 335f-GJof) 2023/05/14(日)00:07 ID:QmAlZPFj0(1) AAS
何も考えないでboost::combine_hash使っとけばいい
25: (ワッチョイ f37c-rSo2) 2023/05/14(日)00:50 ID:uyb9YL620(1) AAS
どうせ整数のハッシュなんて値そのものだし
26: (ワッチョイ 73da-M4GN) 2023/05/14(日)00:58 ID:hOK4knnB0(1/3) AAS
よくあるサンプルが (x * 12345)%n
27: (ワッチョイ 73da-M4GN) 2023/05/14(日)01:15 ID:hOK4knnB0(2/3) AAS
いや、適当杉田わ
long int v=0;
for(auto c : int_array)
v += v*12345 + c ;
return v%hash_size;
28: (ワッチョイ 73da-M4GN) 2023/05/14(日)01:16 ID:hOK4knnB0(3/3) AAS
いや、こうか
long int v=0;
for(auto c : int_array)
v*=12345, v+=c ;
return v%hash_size;
29: (ワッチョイ cf34-TSnC) 2023/05/14(日)06:44 ID:YUNKAbGY0(1/3) AAS
template <>
struct std::hash<std::pair<int, int>>
{
static constexpr std::size_t size = sizeof(int) * 2;
using result_type = std::bitset<size * CHAR_BIT>;

result_type operator()(const std::pair<int, int>& val) const
{
省6
30: (ワッチョイ cf34-TSnC) 2023/05/14(日)06:47 ID:YUNKAbGY0(2/3) AAS
もとい
ret |= result_type(get<0>(val));
ret <<= sizeof(int) * CHAR_BIT; //fix
ret |= result_type(get<1>(val));
31: (ワッチョイ 6f9a-syTp) 2023/05/14(日)10:45 ID:28vpFfrh0(1) AAS
シフト演算が必要なのは、負の整数の場合が
あと、問題のサイズによってはハッシュの速度も気になるなあと
32: (オイコラミネオ MMc7-ZkZz) 2023/05/14(日)13:45 ID:pb1Dbmn7M(1/2) AAS
この流れ…

小学生の頃の自分はもちろんc知らなかったけど
このスレでああだこうだ言ってる人間達よりは使える人間だったのかなと
33: (ワッチョイ 7f28-HoHV) 2023/05/14(日)13:47 ID:mysDM4PT0(1/2) AAS
負の整数を論理演算と組み合わせるときはオフセットして非負の範囲にしてから符号無し型にして唐論理演算したら安心、
取り出すときは(論理演算して切り出した後)逆オフセットで元に戻る
全ての過程で符号つき整数の右シフトが陽に現れずに済む
34: (ワッチョイ 7f28-HoHV) 2023/05/14(日)13:52 ID:mysDM4PT0(2/2) AAS
しつれい
>オフセットして非負の範囲にしてから符号無し型
この処理順序で良いのは {扱う整数|<std::numeric_limits<オフセットするときの整数型>::max()のときはこれで良いが、
=の場合は符号無しにしてからオフセットする
全てが調和する、
35: (オイコラミネオ MMc7-ZkZz) 2023/05/14(日)13:53 ID:pb1Dbmn7M(2/2) AAS
こんなの秒で解決するだろ
ごちゃごちゃ言うようなものなの?
36: (ワッチョイ 835f-Phjm) 2023/05/14(日)17:24 ID:oi9EHG/70(1) AAS
こんなの秒でスルーするだろ
ごちゃごちゃ言うようなものなの?
37: (スップー Sd1f-HMPm) 2023/05/14(日)18:28 ID:f2qVMn0Gd(1) AAS
スルー出来てない人に言われましても
38: (ワッチョイ cf34-TSnC) 2023/05/14(日)21:34 ID:YUNKAbGY0(3/3) AAS
ヒントじゃあかんのね
100%完全なコードを提供しないとクレームつくわけか

# 若旦はん、やってて恥ずかしおまへんか?
39
(3): (ワッチョイ 0310-QNcS) 2023/05/16(火)15:18 ID:cdgpde7Q0(1/2) AAS
教えてもらえないでしょうか
c++で
クラスを作って関数を書いています。
大きくなり、可読性が悪いので、
同じクラス内のcppを別ファイルに分けたいのですが、
可能なのでしょうか

継承を使って、10個ぐらい数珠つなぎにして、一番最後の継承クラスに関数呼び出し元の関数を書いて、
省2
40: (アウアウウー Sa67-+/XS) 2023/05/16(火)15:58 ID:mGp2Y9l5a(1/2) AAS
>>19
めっちゃわかります
41
(1): (アウアウウー Sa67-+/XS) 2023/05/16(火)16:03 ID:mGp2Y9l5a(2/2) AAS
>>39
可能
ヘッダのクラス定義はまとめないとだめだけど
cppのソースは分かれてても最後にリンクで辻褄が合えばOK
42
(1): (アウアウウー Sa67-MLJk) 2023/05/16(火)16:24 ID:hKNAv4Vda(1) AAS
>>39
後半で言っていることがちょっと難しいかな
多重継承の数珠繋ぎを言ってる?

よく分からんけど多分そんな変なことしなくていいよ
43: (ワッチョイ 0310-QNcS) 2023/05/16(火)17:34 ID:cdgpde7Q0(2/2) AAS
>>41
>>42
助かります。ありがとうございます。
勉強してみます。
44: (スッップ Sd1f-paFp) 2023/05/16(火)21:35 ID:+NXdN5Npd(1) AAS
可読性が悪いものは
ファイルを分けても良くはならんぞ
45: (ワッチョイ 6fad-ZkZz) 2023/05/16(火)21:55 ID:RFVtGrOF0(1) AAS
>>39
1つのクラスに機能を詰め込み過ぎなんじゃない?
昔、4万行のcppファイルを見たことはあるけどw
46: (ワッチョイ 73da-M4GN) 2023/05/16(火)22:05 ID:oY5Fe8SB0(1) AAS
殆どコピペなんだろうな
クラスの継承知らないヤツがよくやる荒業
47
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ff3e-ZkZz) 2023/05/16(火)22:27 ID:tGbGLk1R0(1) AAS
そういえば C# でクラス定義を分ける機能 (パーシャルクラス) があると聞いたことがあるけど
本来的に分けるべきクラスを見かけだけ分割するような悪い設計を誘発しそうな印象がある。
C# について全然知らんので印象だけだけど。
48: (ワッチョイ 335f-GJof) 2023/05/16(火)22:54 ID:A1rs+At80(1) AAS
partialはXAMLから生成された.csと手書きする.csをマージするための機能なので
49: (スプッッ Sd1f-zj+H) 2023/05/17(水)07:00 ID:s9zxu+xkd(1) AAS
>>47
多重継承っぽいやつ?
1-
あと 953 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s