關於迭代器vector iterator的使用

2021-06-26 13:42:58 字數 1428 閱讀 4501

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 ...