首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求解释,红色一部分那两段代码什么意思

2012-10-24 
求解释,红色部分那两段代码什么意思?void Cross(int type,vectorvectorLujing &lujing){int dot0fl

求解释,红色部分那两段代码什么意思?
void Cross(int type,vector<vector<Lujing> > &lujing){ 
int dot=0;
float odds=0;
vector<Lujing>::iterator iter1,iter2;
for(int num=0;num<lujing.size()-1;num++){
odds=rand()%100/100.0;
if(odds>=0.5&&odds<=0.9){
dot=NormalRandom(0, 0.2,1,type);
iter1=lujing[num].begin() +dot-1;
iter2=lujing[num+1].begin()+dot-1;
while(iter1!=lujing[num].end()){
swap(*iter1,*iter2);
iter1++;
iter2++;
}
}
}
}



[解决办法]
iter1=lujing[num].begin() +dot-1;
迭代器iter1指向lujing[num]第dot个数据
[解决办法]
一层一层剥开来看:
首先由函数参数可以明确,lujing是vector的vector,即vector<vector<>>,
由for循环可以知道lujing[num]是取的里面的vector<>,
然后.begin()就是迭代器的第一个元素,
最后+dot-1,即lujing[num]的第dot个元素。
[解决办法]
矩阵元素
iter1=第num+1行,第dot列的Lujing
iter2=地num+2行,第dot列的Lujing

热点排行