2016-04-29 20 views
0

C++でペア機能を説明?私はこのコード</p> <pre><code>#define pii pair<int, int> #define pip pair<int, pii> ... vector<pip> graph; graph[i] = pip(c, pii(u,v)); </code></pre> <p>に遭遇しました

+0

「c」、「i」、「j」、「u」、「v」とは何ですか? 'pip(c、pii(u、v))'から 'c'、' u'と 'v'はおそらくintであると推論できます。あなたは 'pair 'のテンプレートパラメータにそれらを置き換えることを達成したいと思いますか?そして、通常の角括弧を角かっこに変更しても、表現の意味は変わらないと思うのはなぜですか? – lisyarus

+0

はい変数はintです。私はどのように 'pip(c、pii(u、v))'を理解しようとしています、それはどのように動作し、 '#define'のためにブラケットを置き換えれば同じであると思いました。また、通常の括弧で試しました。 – aurel

+0

"#defineのためにブラケットを代用すると同じと思った" - マクロは山括弧とは関係がない。 – lisyarus

答えて

4

pairは、タイプであり、機能ではありません。

graph[i] = pair<c,pair<u,v>>; 

おそらくあなたは:あなたはここで、テンプレートパラメータにc(実行時の変数)を渡すようにしようとしているので、別に構文が間違っているから、あなたはこのエラーを取得している理由は

代わりに、このような何かをしたい:

に相当
graph[i] = pip(c, pii(u,v)); 

graph[i] = pair<int, pair<int, int>>(c, pair<int, int>(u,v)); 
関連する問題