读书人

关于施用STL常见的两个bug

发布时间: 2013-09-07 14:12:44 作者: rapoo

关于使用STL常见的两个bug

1、bug 1class 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 2void Test(){CTest a;vector<int>::iterator iBegin = a.getVector().begin();for(int i=0;i<5;i++)a.insert(iBegin,i);//iBegin在一次插入之后,不在最开始的位置,甚至不再指向任何一个vector的元素}

读书人网 >编程

热点推荐