1、bug 1
class CTest
{
public :
vector<int> getVector() const //需要写成引用形式,不然下面begin、end调用会以拷贝形式调用
{
return m_vec;
}
void push(int rValue)
{
m_vec.push_back(rValue);
}
private:
vector<int> m_vec;
};
void Test()
{
CTest a;
for(int i=0;i<5;i++)
a.push(i);
vector<int>::iterator iBegin = a.getVector().begin();
vector<int>::iterator iEnd = a.getVector().end();
for(;iBegin!=iEnd;i++)
{
if(*iBegin == 3)
return 3;
}
return -1;
}
2、bug 2
void Test()
{
CTest a;
vector<int>::iterator iBegin = a.getVector().begin();
for(int i=0;i<5;i++)
a.insert(iBegin,i);//iBegin在一次插入之后,不在最开始的位置,甚至不再指向任何一个vector的元素
}