要点
s1.emplace(y1, x1);
s2.emplace(P2({y2, x2}));
#質問
pair型データの代入は(y1,x1)というような簡潔な記述で出来ているのですが、
struct型データへの代入では(P2({y2, x2}))というように冗長になってしまっています。
これをpair型データの代入のように簡潔に記述する方法の有無を知りたいです。
また「pair型使えばいいじゃん」と言われそうですが確かにpair型は便利なのですが.firstや.secondを使いたくないのと要素が3個の時もあるのでstructで慣れておきたいというのが理由です。
(pair型の入れ子は見づらいなど)
#試したこと
最初はpair型と同じように記述しているとコンパイル時にエラーが多発したので記述方法が間違っていると気づきました。
手探りで(){}などをあれこれつけているうちに偶然エラーが無くなりました。
C++
1#include <bits/stdc++.h> 2using P1 = std::pair<int, int>; 3 4struct P2 { 5 int y; 6 int x; 7}; 8 9int main() { 10 11 int y1 = 1, x1 = 11; 12 int y2 = 2, x2 = 22; 13 14 std::set<P1> s1; 15 std::set<P2> s2; 16 17 s1.emplace(y1, x1); //質問内容部分 18 s2.emplace(P2({y2, x2})); //上のpair型と同じような記述にすることは可能? 19 20}
開発環境
Win10
VSC1.47.3
C++14
gcc version 8.2.0 (Rev3, Built by MSYS2 project)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/31 03:32
2020/08/31 03:44 編集
2020/08/31 03:45