随笔分类 -  Programming C/C++

C/C++程序设计中的一些想法,问题解决等
摘要:iterator1.erase//删除一个元素iterator erase(const_iterator pos);//删除一组元素, 范围 [first, last), 半闭半开区间iterator erase(const_iterator first, const_iterator last);两种情况都有返回值,返回最后被删除元素的后面一个的iterator.一个简单的测试vector<int> ak(6);unsigned int i = 0;for(i=0;i<ak.size();i++){ ak[i] = i;}for(i=0;i<ak.size();i++ 阅读全文
posted @ 2011-06-01 23:05 Frandy.CH 阅读(451) 评论(0) 推荐(0)
摘要:vector是使用的比较多的一种C++的STL类,之前没有系统地看过如何使用vector,导致使用的时候总觉得不好用。vector是为了取代直接定义的数组,可以进行下标越界检查,大小可以动态增长。大家总是建议使用vector,而不使用 Type array[size]。第一次用vector的时候,报错了,vector<int> vInt;vInt[0] = 1;cout << vInt[0] << endl;运行时报错,Segmetation fault。于是改了一下,vInt.push_back(1);这样就对了。后来便一直这样用。最近才发现自己太傻了,于 阅读全文
posted @ 2011-05-15 21:31 Frandy.CH 阅读(2330) 评论(1) 推荐(0)
摘要:最近跑一个程序,结果2G内存用完了,结果也没算出来,出现std::bad_alloc,应该是程序中某个地方内存空间没有及时释放,开始检查程序。发现好多地方用到vector,而且有些会很大,并且只是中间结果,只是因为需要在多个地方访问,定义为了类的成员变量,要等到这个类解析的时候才释放空间,看来应该在程序中,它的中间作用结束之后便释放内存。于是开始探索如何释放vector的内存。1、vector的成员函数 clear()clear()只是清除vector中的变量,并不释放内存。一个简单的测试程序如下,int main(){ vector<double> a; for(unsigned 阅读全文
posted @ 2011-05-11 19:07 Frandy.CH 阅读(6100) 评论(10) 推荐(0)