2011-11-02 23 views
0

向量矩陣的所有值我有一個vector< vector< pair<int,int> > >,我想打印的所有值 我試着用2個迭代器這樣做,但2號一個悲慘地失敗了:顯示在C++

vector< vector< pair<int, int> > > list; 
vector< vector< pair<int, int> > >::iterator it1; 
vector< pair<int, int> >::iterator it2; 

for(it1=list.begin(); it1<list.end(); ++it1){ 
    for(it2=it1.begin(); it2<it1.end(); ++it2){ 
    printf("%d, %d", *it2.first, *it2.second); 
    } 
} 

任何想法關於如何遍歷第二個向量呢? 感謝

+2

請使用一些'typedef'的。 :) – GManNickG

+0

請注意,沒有其他人似乎發現循環中printf「%d,%d」的無用性。數字將粘在一起。我的答案旨在解決這個問題:) – sehe

回答

0

也許你的意思是這樣的:

for(it1=list.begin(); it1 != list.end(); ++it1) 
{ 
    for(it2=it1->begin(); it2 != it1->end(); ++it2) 
    { 
    printf("%d, %d", (*it2).first, (*it2).second); 
    } 
} 
+0

當然,您必須爲'it1'和'it2'添加聲明才能編譯它。 (但是「這樣的東西」表明你只是發佈僞代碼來表達想法。) –

0
for (it1 = list.begin(); it1 != list.end(); ++it1) { 
    vector< pair<int, int> >& v = *it1;  
    for (it2 = v.begin(); it2 != v.end(); ++it2) { 
     printf("%d, %d", (*it2).first, (*it2).second); 
    } 
}