我有這個新的類Seq繼承向量,並有一些額外的功能。我可以在Seq中使用所有的矢量方法。函數返回向量的迭代器
具有這種數據結構:
Seq< vector<int> > sweepEvents;
我想有一個函數,它爲它的元素向量邊搜索中sweepEvents
和迭代器返回到發現元件的位置在sweepEvents
(當且僅如果找到edge
)並且迭代器到該向量的最後元素(當且僅當沒有找到edge
時)。
然後我想用這個迭代器,因爲我想比較迭代器的prev和下一個位置的元素。
我有創始並返回迭代器有以下功能:
Seq< vector<int> >::iterator QSweep::insertSweepEvents(edge_t edge,int currentDim){
int changePosition;
int found=0;
for (int i=0;i<currentDim;i++){
if (edge[0]==sweepEvents[i][1]){
changePosition=i;
found=1;
return sweepEvents.begin()+changePosition;
}
}
if (found==1){
sweepEvents.rep().insert(sweepEvents.begin()+changePosition,edge);
sweepEvents.rep().erase(sweepEvents.begin()+changePosition+1);
}
else{
sweepEvents.rep().insert(sweepEvents.end(),edge);
}
return sweepEvents.end()-1;
}
我再調用這個迭代器的主要功能。其實,我試過,但它不編譯,我不知道比這要使用什麼語法其他:
int main(){
Seq< vector<int> > sweepEvents;
vector<int> edge;
//.....initialize sweepEvents and edge
//declare iterator but not working
Seq< vector<int> >::iterator comparePosition;
//not working neither
comparePosition=insertSweepEvents(edge,sweepEvents.size());
}
上我應該如何正確地調用迭代任何想法?我發現它不能用作數組中的整數索引?
你意思是「不工作」?錯誤的結果,編譯器錯誤,核心? – bayda 2009-04-08 08:06:02
編譯器錯誤,用於定義comparePosition並隨後分配comparePosition。 – madalina 2009-04-08 08:11:46
你的if(found == 1)塊永遠得不到執行,因爲當你設置found = 1時你會返回...... 你在哪個編譯器中得到哪些編譯器錯誤? – mentat 2009-04-08 08:12:32