2. Notes commonly used functions
2.1.localtime
该函数返回是一个指针,但是这个指针不需要我们申请地址,也不需要我们释放,因为他指向一个静态变量,
在多次调用的时候,改变的都是同一个变量,所以要多加注意,特别是在多线程的时候。
2.2.vector.push_back
每次调用push_back后,原有变量的地址都会改变。
若该变量在其他地方(例:线程)中正在使用,可能会出错,记得加锁。
2.3.vector.erase
好像会出问题,如下
std::vector<GO_TO_RECOG_GUID>::iterator itgoto;
for(itgoto =vec_GUID.begin();itgoto != vec_GUID.end();++itgoto)
{
(*itgoto).iCheck++;
if((*itgoto).iCheck == 500)
{
vec_GUID.erase(itgoto);
}
}
删除一个元素之后,vector里面的元素地址会发生改变,erase会返回删除元素的后面一个元素的最新地址。
std::vector<GO_TO_RECOG_GUID>::iterator itgoto;
for(itgoto =vec_GUID.begin();itgoto != vec_GUID.end();)
{
itgoto->iCheck++;
if(itgoto->iCheck >= 500)
{
itgoto = vec_GUID.erase(itgoto);
}
else
{
itgoto++;
}
}
2.4.realloc
尽量不要使用realloc,如果内存不够,会返回NULL,而原来的又没有被释放。
Adhere to the accumulation