2017-08-23 3 views
-2

私はこのようにそれをやって、私のvector<vector<pair<int, int> > > v[1001];にデータを格納する方法を考え出し:は、STDのメンバー二にアクセスすることはできません::ペア

f >> x >> y; v[i][j].push_back(make_pair(x, y)); 

が、それが与えるので、私はそのデータにアクセスする方法がわかりません私にエラー:この行で

c++ - error: '__gnu_cxx::__alloc_traits > >::value_type' has no member named 'second''|

単純な配列という
c[j] = c[j + 1] * (v[foo][j].second - v[foo][j].first + 1); 


私の質問です:私は間違って何をしていますか?

+0

'v [foo] [j]はベクトルです。 'v [foo] [j] [bar] .second'のようなもう1つの索引が必要です –

答えて

5

vは、ペアのベクトルのベクトルの配列です。 (ほとんど常に)あまりにも多くある

v[foo][j][???].first 

三インデックス:あなたはインデックスが必要です。何らかの構造でカプセル化する必要があります。

+0

正しい、最初の[]は配列に関連し、次の2つはネストされたベクトルに関係します。コンパイラは単純に 'vector >'で 'second 'を読むことができないと伝えます – Dusteh

関連する問題