2016-04-19 18 views
-2

それが何を意味する:C++構造とベクトル

L[a].push_back(edge(b, c)); 

L - 構造のエッジのベクトル:

vector<edge> L[1000]; 
+0

ご理解いただけない部分はありますか? [std :: vector :: push_back'](http://en.cppreference.com/w/cpp/container/vector/push_back)のドキュメントはかなり説明しています。 – WhozCraig

+0

なぜL [a]ですか? L.push_backとL [a] .push_backの違いは何ですか?あなたはC#で同じものを書く方法を知っているかもしれませんか? –

+0

@ R.I。 C#では 'L [a] .Add(new Edge(b、c))'となります。 'L 'は、リスト [] L =新しいリスト()'で個々の要素を埋め込んだ [1000] 'となります。 – dasblinkenlight

答えて

0

あなたが戻ってからこの文を解析を開始し、段階的にそれを把握することができます:

  • edge(b, c)
  • そのコンストラクタを呼び出すことによって、新しい edgeを作ります
  • push_back(edge(b, c))vector
  • L[a]に新しく作成されたedgeのコピーを追加するにはfrom the array of vectors 'L

全体vector at indexをとり、これは「配列L[]のインデックスavector<edge>に新しいedgeを追加する」を意味します

0

Lはエッジのベクトルではなく、エッジのベクトルの配列です。 [1000]はベクトルサイズではなく、配列サイズを参照します。したがってL[a].push_back(edge(b, c));は、配列のa番目のベクトルにエッジをプッシュバックすることを意味します。