我有这个新的类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