2016-09-15 12 views
0

私は、このようにマルチマップコンテナによって、C++でのDFSの実装を作っ:マルチマップで複数のデータをC++でプッシュする方法は?

multimap<int, int>g; 

そして、我々は、このようにグラフのエッジを追加することができます。

g.insert(make_pair(1,2)); 

は今、私が実装するつもりですマルチマップによるKhushkalアルゴリズム。しかし、この場合、ノードあたり1つの余分なデータがあります。ですから、私はマルチマップに3倍のデータを格納する必要があります(1,2,3)。

次に、マルチマップ宣言はどのようになりますか? どうすればそのようなノードを挿入できますか?

+0

それはC++です。したがって、そのようなデータを含む「ノード」のようなクラスを作成します。いくつかのタイプのノードがある場合は、それらのサブクラスを使用するか、Nodeをいくつかのコンテナのテンプレートにします。 – Aziuth

答えて

1

別のアイテムにアイテムをマップする必要があります。 キーとして使用したいものを選択します。 1つのキーと2つの値を決定する場合は、intを一対のintにマップします。また、キーとしてペアを使用してintにマップすることもできます。

3つのアイテムのペアまたはタプルを保存するだけの場合は、これらのデータメンバーの(順序のない)セットを使用することをお勧めします。

オプション1:

multimap<int, pair<int,int>> 

はオプション2:

multimap<pair<int,int>,int> 
+0

このようにエッジを追加することができます:g.insert(make_pair(1、make_pair(2,3))); ? – 2013

+0

最初のオプションを選択した場合、yes :) – Houbie

+0

ありがとう:)良い応答:) – 2013

関連する問題