C++相談室 part162

■ このスレッドは過去ログ倉庫に格納されています
1sage (ワッチョイ fbf0-ofdD)
垢版 |
2022/10/31(月) 14:29:35.57ID:J5sgTSch0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

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

※前スレ
C++相談室 part161
https://mevius.5ch.net/test/read.cgi/tech/1653135809/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
735デフォルトの名無しさん (スプッッ Sd7f-GCrc)
垢版 |
2022/12/14(水) 18:38:06.37ID:boxWAqPPd
int x,y;
auto f = [&x,y](){};
のとき、

fの型は
struct{
int& _x;
int _y;
void operator()();
};

相当だとは思う。
コンストラクタ周りがどういう扱いされてるかはわからん
2022/12/14(水) 18:39:44.53ID:14xvhmEyM
>>722
c++標準に言えよ。
2022/12/14(水) 18:42:43.51ID:Y6rgBuPWd
>>734
なにその言い訳www
2022/12/14(水) 18:45:03.96ID:Y6rgBuPWd
逆に
構造を知らないでオーダーだけ丸暗記してるようなのがいるとでも思ってる?
2022/12/14(水) 19:02:37.51ID:Y6rgBuPWd
>>733
はい
2022/12/14(水) 19:04:38.48ID:YVPbaJHSM
>>727
key とelementが紛らわしいなぁ。
c++標準は「keyで並び替える」。setはkeyがelementになるので結果として「elementで並び替えたのと一緒」となるだけ。key とelement をしっかり区別しないと擬似問題になるよ。
2022/12/14(水) 19:09:19.21ID:Y6rgBuPWd
>>740
>>721
2022/12/14(水) 19:25:11.39ID:14xvhmEyM
>>741
「中身はmultiでunordered」の意味が全然分からないから無視したんだけど……
なにこれ?
2022/12/14(水) 19:27:27.41ID:Y6rgBuPWd
そのままの意味
2022/12/14(水) 19:29:17.49ID:Y6rgBuPWd
配列の中身は順序が定義されてる必要はなく
複数の値も取り得る
2022/12/14(水) 19:33:54.85ID:Y6rgBuPWd
配列の中身をmultisetのkey,element
配列のインデックスをmultisetの要素のn番目のn
ととらえれば配列はmultiでunordered

配列の中身をelement
配列のインデックスをkey
ととらえれば配列はuniqueでordered

実際はどちらでもない
2022/12/14(水) 19:48:43.68ID:6VpEeBw/0
>>744
「複数の値も取り得る」は嘘だろ。
vector<vector<T>>の話?
2022/12/14(水) 19:57:11.36ID:MH9vv9Il0
a[0] = 0;
a[1] = 0;
2022/12/14(水) 20:03:19.82ID:MH9vv9Il0
multi : 別の場所に同じ値を入れられる、同じ値を複数個保持出来る
2022/12/14(水) 20:44:33.97ID:QXbvEgmH0
声のでかさが正義だと思っている、どっかの山猿軍団みたいなやつがいるな
2022/12/14(水) 21:17:02.90ID:x1JxbarV0
>>725,730
有難うございます
その理解に至りました
それと>>698の合わせ技で
mapのkeyにポインタを入れるのが随分とスマートになった印象です

using Ptr = shared_ptr <int>;
auto comparator ([] (const Ptr &lhs, const Ptr &rhs) {return *lhs < *rhs;});
using Map = map <Ptr, int, decltype (comparator)>;
Map m1;
751デフォルトの名無しさん (アウアウウー Sa6b-2vTk)
垢版 |
2022/12/14(水) 21:22:32.15ID:XhtdH9iqa
>>691-692
知ってた
2022/12/14(水) 21:59:55.78ID:K5HiKCY5M
>>738
ここは、教科書そのままを丸覚えしてるだけの人が多すぎるように感じるので。
教科書に出てなくても、ちゃんと実際に起きるようなことを書くと全く理解できない
人が多すぎるから。
2022/12/14(水) 22:46:07.31ID:MH9vv9Il0
>>752
例えばだれ?
2022/12/14(水) 22:58:57.25ID:6VpEeBw/0
>>747 >>748
multimapの"multi"の意味と違うなぁ。それはmapでもできる話じゃない?
cpprefjpに解説あるから調べたら?

C++ Standards だと22.2.6.4ですな。
(N4849)
An associative container supports unique keys if it may contain at most one element for each key.
Otherwise, it supports equivalent keys.
The set and map classes support unique keys; the multiset and multimap classes support equivalent keys.
2022/12/14(水) 23:00:05.46ID:K5HiKCY5M
>>753
失礼だけど、ここの人、ほぼ全員。
2022/12/14(水) 23:31:04.79ID:6VpEeBw/0
>>755
「ほぼ全員」というのは「自分は除く」ということかね。
傲慢だなぁ。
2022/12/14(水) 23:35:44.65ID:K5HiKCY5M
>>756
なぜそう思うかって言うと、俺が言ったことがちゃんと通じる相手も存在しているからだよ。
客観的にハイレベルだと思える人には俺の言ったことが通じる。
しかも、この話だと確実に通じると思ったことはちゃんと確実に通じる。
ところが、この板だと結果は惨敗。全く通じなくて、逆にけなされ、馬鹿にされる。
2022/12/14(水) 23:37:23.23ID:3zhhSsQg0
よせやい。照れるわ
2022/12/14(水) 23:47:40.49ID:MH9vv9Il0
>>754
同じキーを複数入れられる
という意味
2022/12/14(水) 23:48:26.06ID:MH9vv9Il0
>>757
お前の日本語が悪いだけじゃね?
2022/12/14(水) 23:50:51.18ID:MH9vv9Il0
お前も俺が書いたこと理解してないし
俺からみたらお前はアホ
2022/12/14(水) 23:54:44.29ID:MH9vv9Il0
>>754
>>745を見た上で書いたんだよな?
だとしたらアホだ
2022/12/14(水) 23:58:15.35ID:K5HiKCY5M
>>761
普通に東大生とかなら通じる内容だぞ。
自分で「まともなこと」言ってるかどうか、俺は分かるもの。
2022/12/15(木) 00:02:56.94ID:YuqRQs180
お前東大生?
2022/12/15(木) 00:16:01.78ID:3Zw/afEhM
>>764
身元がばれるから言わん。
2022/12/15(木) 00:22:28.27ID:YuqRQs180
あんまり東大の品位を下げるような発言はやめてね
2022/12/15(木) 00:26:32.79ID:3Zw/afEhM
>>766
なお、東大生でも理解力が無い人は理解力無いと思う。
本当に頭のいいのは、一部の学科に集中している。
東大以外でもレベルの高い大学なら理解できる人多いぞ。
ここにも東大生は来てるかも知れんが、残念ながら頭がいいタイプの人は来てない。
2022/12/15(木) 00:27:32.73ID:NC87g1Wm0
これだけ内容の無い連投も珍しいな
2022/12/15(木) 00:33:45.79ID:YuqRQs180
理解力が無い人は理解力が無い
当たり前ですねwww
2022/12/15(木) 00:42:28.23ID:YuqRQs180
0点の人か
言い訳が見苦しいねえ
2022/12/15(木) 00:48:44.56ID:3Zw/afEhM
ホリエモンや高橋洋一も言っていたが、レベルが合わないと話してることが
全く理解されなくて、むしろ馬鹿にされ、阻害されるものなんだぞ。
高橋洋一にいたっては東大に行っても理解されなかったそうだ。
根本的に頭がいい人はそうなる。
日本では特にそういう人を社会から除外するし。
2022/12/15(木) 00:50:57.77ID:NC87g1Wm0
いや、雑談スレじゃねーし
2022/12/15(木) 00:56:26.15ID:3Zw/afEhM
>>772
このスレでは、目に余るものがあって、
そもそも、学級崩壊しているような状態で、まともに議論できない。
正しいことを言ってる人を馬鹿にして、間違ってる子と言ってる人が大きな
顔をして、自分が正しいことを言っているかのような態度をとる。
そもそも議論の土台が出来て無い。
まずは、ホームルームや道徳の様なことから始めなくては。
2022/12/15(木) 01:09:34.07ID:5pPRyT0s0
コミュニケーションってのはコンパイラと違って
言語モデルやその背後にある思考モデルはダイナミックに変化する
それについていけなければ会話は成立しない
更に特定の一つコンパイラを相手にしていれば良いという訳でもない
2022/12/15(木) 01:16:26.87ID:3Zw/afEhM
>>774
現実に通じる相手も存在する。
居るところには沢山居るが、日本全体としては少数。
だから、コミュニケーションの問題ではなく、生まれつきの頭のよさの問題だと
俺は理解している。
2022/12/15(木) 01:24:05.73ID:5pPRyT0s0
会話ってのは一人でやるもんじゃないんだよ
双方が相手の頭の中を推定できたときに初めて噛み合う
相手に自分の頭の中を推定しやすいような
手掛かりを上手に出すのも技術のうち
2022/12/15(木) 01:27:53.05ID:3Zw/afEhM
>>776
もしかしたら、ネットだと文字が読めてないのかもしれない。
声では理解できるのに長い文書が読めない人が多いらしい。
2022/12/15(木) 01:58:19.99ID:yiRddat50
>>762
>745を見直したけど意味不明だわ。
これは>719
>vectorのキーはuniqueでordered
>vectorの中身はmultiでunordered
>考えるまでもなく自明
の説明ということだよな?

> 配列の中身をmultisetのkey,element
> 配列のインデックスをmultisetの要素のn番目のn
> ととらえれば配列はmultiでunordered
で配列をpair<K,T>[]に限定するような話が突然出てくる。
>712のunordered_vectorに頭の中身が引きずられてない?
そんなにunordered_vectorの話がしたいの? 俺は嫌だよ。

>配列の中身をelement
>配列のインデックスをkey
>ととらえれば配列はuniqueでordered
はかすかに議論の流れに沿っているけど、
>実際はどちらでもない
で放り投げられているから、結論として何を主張したいのかも分からん。
これじゃ「>719はどちらも間違い」という主張にしか見えん。
>745にマトモな結論も主張も無いから、この話がどう>747 >748 につながるかも分からん。

エスパーじゃないんだから、バラバラで繋がりの無い情報を読んでも>762の頭の中なんて分からんよ。
「だとしたらアホだ 」と言う前に、引用レスぐらいちゃんと読み直して補足情報ぐらい書いたら?
2022/12/15(木) 02:20:47.08ID:yiRddat50
>>775
そりゃ、有り難くも相手が理解しようと努力してくれているからだろ。

会話で「情報の非対称性」は意識している?
相手がどのような情報を持っているのかを無視して、自分の立場を
ゴリ押しして相手にマウントしようとすれば、そりゃ相手に嫌われるわ。
まあ、相手に嫌われるのが目的ならそれでOKだけど。
2022/12/15(木) 07:04:36.25ID:cCqUdoUCd
ハッシュでないものをハッシュということにしたくてヤダジタ大暴れ
みっともねえな
2022/12/15(木) 07:12:05.83ID:hWaEpCH1a
>>713>>714 が同じ人間と思えないくらい

>>714 のあほっぷり
2022/12/15(木) 07:27:41.09ID:dbf8SNdVd
でかい声出しても人を小馬鹿にしても
それでハッシュでないものがハッシュになるわけでなし
無駄で関係ない努力をし、そのために他人に迷惑が及んでも
構わないという自己中心的なやつ
2022/12/15(木) 07:31:15.67ID:hWaEpCH1a
>>768
一人二(+a)役でピンポンしてるだけでは
2022/12/15(木) 07:50:47.01ID:YuqRQs180
>>745でわからないアホと会話するのは不可能
2022/12/15(木) 07:52:47.62ID:0irp5Zs10
>>778
あまりにも、あまりにもレベルが低い
まるでチンパンジーのようだ
2022/12/15(木) 12:23:36.75ID:WaHslr7gM
>>784
>>778

>745で説明したことにするアホと会話するのは不可能
2022/12/15(木) 12:47:10.10ID:WaHslr7gM
hashのレスはあんまり読んでいないんだけど、c++標準のhashの話だよね?

c++標準と関係の無いhashをc++スレで持ち出してhash hash 言っているわけじゃないよね?

まさかそんなアホいないよね?
2022/12/15(木) 13:55:56.86ID:adPtbWG70
いまだにハッシュガーとか言ってるのは何が悔しいのか粘着キチだからスルーでOk
2022/12/15(木) 16:19:30.66ID:dbf8SNdVd
>>787
いやC++に限らない一般論としてハッシュとは何が明らかに分かってないやつが暴れてんの
2022/12/15(木) 16:24:26.31ID:dbf8SNdVd
見たところPerlスレ民のほうが
キチガイを追い出すのはうまかったようだな
791デフォルトの名無しさん (ワッチョイ a701-u86g)
垢版 |
2022/12/15(木) 19:54:56.58ID:SaYQ/lLy0
Perl民は70代中心だからな。
2022/12/16(金) 00:24:44.89ID:kaubkXoa0
心の欲するところに従えども矩を踰えず、
2022/12/16(金) 08:43:50.12ID:Sk8Nrr7L0
名前、それ自体がハッシュだよ
ありとあらゆるものが名前を与えられることによって唯一性・独自性を確保する
つまり、人間の脳は万物をハッシュで管理している
2022/12/16(金) 08:57:47.68ID:3/NVi56ad
ほらな
何にもわかっちゃいねえ
乱数や暗号との違いが言えねえぞコイツ
2022/12/16(金) 09:10:39.36ID:wsa7u1K/d
C++の話しようぜ
2022/12/16(金) 10:09:11.46ID:zTEnSqew0
c++20のコンセプトとかモジュールとか<=>とか誰か使ってる?
2022/12/16(金) 10:24:14.76ID:8MYQQby5d
<=> 使ってる
2022/12/16(金) 11:19:29.52ID:rgyul2GY0
>>796,797
へー 初めて知った
2022/12/16(金) 12:00:08.46ID:8wSlC2cWa
ウホッ演算子
2022/12/16(金) 12:09:30.80ID:3/NVi56ad
<=>は便利だね
使い出すとやめられん
801デフォルトの名無しさん (ワッチョイ 675f-k8RX)
垢版 |
2022/12/16(金) 12:26:19.15ID:YwJTJAAR0
<=>初めて知ったけどめちゃ便利だな
うちの環境じゃ使えないのが残念だけど
802デフォルトの名無しさん (スプッッ Sd7f-GCrc)
垢版 |
2022/12/16(金) 15:18:01.45ID:h3Zax2und
operator==のdefaultは便利だわ
2022/12/17(土) 02:36:30.45ID:ufrS8am+a
a > b, a < b, a == b を一度に判定するだけの演算子の何がそんな便利やねん!
とおもったらこれ一つ定義するだけで各種比較演算子全部児童生成してくれるのね
なるほどこりゃ便利かも
2022/12/17(土) 05:21:21.32ID:dncno9m70
unorderedの比較の実装は相変わらず迷う
2022/12/17(土) 08:51:24.48ID:SViislQC0
ロリコンショタ歓喜じゃん
2022/12/17(土) 09:11:20.17ID:rODQUlPF0
using rel_ops だとスコープ全体に影響でるから使用控えてたけど、operator<=>で全部解決出来るようになったのはいいな
2022/12/17(土) 09:32:05.93ID:XBBLmCjVd
3方があると4方も欲しくなる

a < b
a = b
a > b
unordered

結局戻り値4値の関数を作ることになる
2022/12/17(土) 11:46:18.72ID:QZoKK6jA0
宇宙船演算子……!
ってオーバーロード……!
可能なの……?!
2022/12/17(土) 12:25:08.76ID:dQNfWhWG0
>>807
std::partial_ordering返すようにすれば<=>で4方出来るぞ
2022/12/17(土) 12:44:09.97ID:rODQUlPF0
>>808
いや、なにをいってるんだ
そのためのものだろ
2022/12/17(土) 14:06:58.32ID:t4TbQFP40
ストリーム入出力に使っていけ(※冗談です)
2022/12/17(土) 14:23:32.76ID:QZoKK6jA0
>>810
それはそうか……orz
a-bのオーバーフロー対策なだけかと一瞬思った……
2022/12/20(火) 07:42:37.51ID:louNKIVjd
NaN同士の比較とかあるからな
2022/12/20(火) 14:22:24.61ID:UPRI61by0
このスレ見てるとわかるがC++が好きって言ってるやつって知能低いな
2022/12/20(火) 15:05:44.24ID:0942ga5D0
このスレには周囲に天才と言われる人がいるからそれは違うな
816デフォルトの名無しさん (ササクッテロロ Spb3-7wYa)
垢版 |
2022/12/20(火) 15:17:57.65ID:/qMRbodsp
自称だけどな
2022/12/20(火) 15:21:56.61ID:louNKIVjd
あんなやつに褒められても嬉しかねえよってやつに
どう思われようが関係ねーなあ
2022/12/25(日) 18:29:48.93ID:Dw6urQXv0
namespace std {
template <class T, std::size_t N>
struct array;
}

みたいに標準ライブラリの前方宣言を自作のヘッダに書くのってやっぱり未定義動作なんですかね?
2022/12/25(日) 18:51:26.23ID:PNih05NQ0
stdに勝手に宣言加えていいのは既存テンプレートの特殊化だけ
他は未定義
2022/12/25(日) 20:29:17.71ID:8blj/qJt0
>>818
原則としては std 名前空間になんらかの宣言や定義を追加したら未定義ということになってる。
https://timsong-cpp.github.io/cppwp/n4861/namespace.std
その事例も該当すると思う。

条件付きで許されている特殊化はあるが C++20 から制限が強化された。
(従来は条件付きで「テンプレートの特殊化を追加できる」だったのが「クラステンプレートの特殊化を追加できる」に改められている。)
ユーザー定義型ごとのカスタマイズを許したい場面では Customization Point Object (CPO) を
活用する方向性なので特殊化でどうにかする必要もないし制限が強くなることはあっても緩和されることはないんじゃないかな。
2022/12/25(日) 21:15:27.65ID:BoLdymVdF
そんな堅苦しい事なんて言わんでもええやん?
どんな弊害があるん?
2022/12/25(日) 22:24:02.06ID:9/OfwQI/0
>>821 標準ライブラリの変更にあたって、 std に宣言追加しているソースへの影響を考えないといけなくなる。
2022/12/25(日) 22:39:45.88ID:8rnFU1jp0
>>822
リンクで失敗するので修正すれば良いだけでは?
2022/12/25(日) 22:40:44.04ID:8rnFU1jp0
「未定義」ってほどには深刻な問題はないと思うんだよね
2022/12/25(日) 23:02:22.44ID:PNih05NQ0
コンパイラがstdに勝手宣言がないことを前提にしたあらゆる最適化の結果を受け入れるなら別にいいと思うよ
俺は絶対に嫌だから関わらないでくれよ
826デフォルトの名無しさん (ワッチョイ b101-jXNG)
垢版 |
2022/12/25(日) 23:15:00.75ID:8rnFU1jp0
>>825
いやまぁ>>818は俺じゃないので俺も必要性を感じているわけではないけども
具体的に何を恐れているのか分からん
2022/12/26(月) 01:10:32.66ID:OBkbHJZM0
>>826
何が起きるか具体的にわからないから恐ろしいんだよ。
828デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/26(月) 01:18:22.88ID:D/1vl6x80
>>827
ワクワクしてこないか?
2022/12/26(月) 01:20:46.52ID:YnLWxzzl0
>>827
oresamaライブラリの中でoresama名前空間があって
arrayが定義されていたとして
oresamaライブラリとは別のプロジェクトで
oresama::array前方宣言したときに
起こりうることは予想がつくよね?
それがstd名前空間だと動作が未定義だとのことだけども
何が違うのか分かります?
2022/12/26(月) 01:30:35.37ID:2gdEMUwk0
>>829
コンパイラ様はstd以下を思うままに特別扱いしてカオスでアドホックな最適化処理をいくらでも入れることが許されてる
2022/12/26(月) 01:51:58.67ID:YnLWxzzl0
>>830
>>825も指摘してるけどoresamaとstdの違いはそれくらいだよね?
具体的にどういう最適化をして鼻から悪魔を出すのかな?
まぁそんなことを分かる人はおらんかな...
2022/12/26(月) 02:20:44.42ID:OBkbHJZM0
>>831
コンパイラの内部に興味を持って調べたいならどんどんやればいいよ。
詳しい人が増えるならそれはたいへん喜ばしい!

でも、リッチな C++ コンパイラのソースコードを読んで様々な最適化がどう組み合わさるかまで把握するのは
相当に高い技能を持った達人でないと無理なのでこのスレ程度ではなんもわからんと思う。
世の中にはこれを保守している人がいるんだからありがたい話だよな。

私がどこかで見たおぼろげな記憶では標準テンプレート関連の一部で
マングルのルールが異なる (名前が短くなるようにしてる?) というのがあるので
変なことをすると破綻することもあるのかもしれない。
2022/12/26(月) 02:29:01.84ID:2Z6X9F6ZM
なぜこうもわざわざ未定義動作を踏み抜きたいやつが多いのか
2022/12/26(月) 02:33:59.35ID:OBkbHJZM0
コンパイラをナメてるからだろ。
「未定義動作つってもどうせこうなるだろう」という予測が出来ると信じている。
無理なのに。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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