C++相談室 part164

■ このスレッドは過去ログ倉庫に格納されています
2023/05/09(火) 11:50:52.06ID:EYc2I7oW0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

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

※前スレ
C++相談室 part163
https://mevius.5ch.net/test/read.cgi/tech/1672409791/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2023/05/09(火) 17:29:42.12ID:fBzPCnLFd
>>1
3デフォルトの名無しさん (ワッチョイ df01-ouLR)
垢版 |
2023/05/10(水) 05:46:16.13ID:v0BqkWXe0
>>2
よく見たらそれ乙じゃなくてポニーテールやん
2023/05/10(水) 07:28:21.43ID:htltMOsRd
どゆこと?
2023/05/12(金) 20:00:57.96ID:mYlAeNCAM
class template みたいなノリで、namespace templateとかできないかね。
ユーザーカスタマイズくらいしかメリット無いけど。
2023/05/13(土) 07:51:55.71ID:JxNjXH3v0
ある整数のペアが既に出てきたかどうかを管理したいのですが、
安直に unordered_set(pair<int, int>> としたら、これはハッシュ関数を定義してあげないと
使えないんですね。
ネット上で見かけた良さげなハッシュ関数の例をコピーする手もあるのですが、
これ以外で楽なやり方(データ型)ってありますかね?
2023/05/13(土) 08:05:00.58ID:qcT1eyp6M
職業プログラマに聞きたいんだけど
自分でソフト屋なんて言ってるけど、ほぼ全てを外注に投げて自分ではろくに書けないなんての普通のことなの?

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

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

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

何が問題なんだ?
2023/05/13(土) 10:30:48.84ID:W/YCRtGia
単にset<int, int>じゃダメなの?
場合によっちゃあmap<int, set<int>>のほうが容量ケチれそうだけど?
https://ideone.com/YB4CIY
{
std::set<std::pair<int, int>> s;
s.emplace(1, 1);
s.emplace(1, 2);
auto f = [&s](int a, int b) {
return s.find(std::pair<int, int>(a, b)) != s.end();
//return s.contains(std::pair<int, int>(a, b));
};
std::cout << f(1, 1) << f(1, 2) << f(0, 1) << std::endl;
}
{
std::map<int, std::set<int>> m;
m[1].insert(1);
m[1].insert(2);
auto f = [&m](int a, int b) {
return m.find(a) != m.end() && m[a].find(b) != m[a].end();
//return m.contains(a) && m[a].contains(b);
};
std::cout << f(1, 1) << f(1, 2) << f(0, 1) << std::endl;
}
2023/05/13(土) 11:16:03.77ID:giA7vv3r0
後者だったらstd::multimapでよくね
unorderedでもいいけど
16デフォルトの名無しさん (アウアウウー Sa67-ayqt)
垢版 |
2023/05/13(土) 13:46:15.98ID:0/cn7SoCa
>>7
WNDCLASS
RegisterClass
UnregisterClass
WNDCLASSEX
RegisterClassEx
GetClassName
GetClassLong
SetClassLong
GetWindowClass
2023/05/13(土) 19:14:51.96ID:23Ow1LiAM
>>16
君もc++を学習しなおせ
2023/05/13(土) 19:17:32.52ID:acArdvJWd
>>7
ソフト屋という大きなカテゴリの中でコーダーとは役割が違うだけでコーディングスキルだけを見て優劣を考えるのは短絡的な判断だよ
必要なスキルなんて立ち位置次第で全く異なるんだから
2023/05/13(土) 19:23:38.16ID:lAh8QD2cd
コード書けないリーダーは事務方に徹してくれるなら別にいいんだよ
そうじゃないやつが迷惑ってだけ
コーダーをバカにするやつはすべてこれ
2023/05/13(土) 19:32:33.50ID:JxNjXH3v0
>>13
よく使うものはシステム側でハッシュ関数を用意してくれると助かるな、的な
あともしショボいハッシュ関数を使ったら性能が落ちますし、ってそれも自己責任かw

>>14
setは悪くないですね。ただパフォーマンスにシビアになる場合はunordered_の方を
使いたいかなと。こちらもちゃんとしたハッシュが前提になりますが
2023/05/13(土) 21:58:43.54ID:TFo/sDKRM
int int → long
何にでも突っ込め
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況