void cformdumper::reverseseq2(int nstart, int nend, vect_dumpervehi& vvehiinfo)
if (nstart < 0)
if (nstart >= nsize)
if (nend >= nsize)
/*先將舊的陣列清空,並備份當前車輛資訊陣列*/
m_vectoldvehileft.clear();
m_vectoldvehileft.assign(m_vectvehileft.begin(), m_vectvehileft.end());
int nindex = 1;
vect_dumpervehi::iterator itr = m_vectvehileft.begin();
vect_dumpervehi::iterator itr_first = itr;
vect_dumpervehi::iterator itr_last = itr;
vect_dumpervehi::iterator itr_second = itr;
struct_dumperslip_vehi stru_vehi;
/*判斷反序的車數是奇數還是偶數*/
bool bodd = true;/*初始為奇數*/
int nnum = 0; /*標記實際有奇數輛還是偶數輛*/
bool btest = true;
nnum = (nend - nstart + 1)%2;
if (nnum == 1)
else
/*對於選擇奇數個車輛時*/
if (btest)
if (nindex > nstart && nindex <= nend)
else
else
}/*奇偶性質改變*/
bodd = !bodd;
}if (nindex == nend) /*終點*/
nindex++;
itr++;
}stru_vehi = *itr_first;
vvehiinfo.insert(vvehiinfo.end(), stru_vehi); /*將第乙個元素插入到最尾部;也可用push_back()*/
}else
/*對於選擇偶數個車輛時*/
if (nindex > nstart && nindex <= nend)
else
else
}/*奇偶性質改變*/
bodd = !bodd;
}if (nindex == nend) /*終點*/
nindex++;
itr++;}}
/*將車輛資訊陣列去除反序的部分*/
m_vectvehileft.erase(itr_first, itr_last);
用來如何管理記憶體塊使用示例。
關於迭代器失效
迭代器失效 注意關聯容器和序列容器的區別 序列容器 vector list deque 關聯容器 map set 序列性容器 erase迭代器不僅使所有指向被刪元素的迭代器失效,而且使被刪元素之後的所有迭代器失效,所以不能使用erase iter 的方式,但是erase的返回值為下乙個有效的迭代器,...
python關於迭代器2
一類是集合資料型別,如list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function。這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable。可以使用isinstance 判斷乙個物件是否是iterable物件...
odoo 關於self的迭代器(1)迭代器初步
起因 在學習odoo對他們的self迴圈很不適應,所以決定留些東西在這裡。開篇 計算機最擅長做批量工作,所以任何語言都繞不開迴圈。迴圈我習慣這麼分類 當真是個人的習慣,非常廣義,不要較真 1.以個數為限制的 工作中這種情況並不是太多 n 1 while n 100 print n n n 1for ...