[Wrote] own development Knowledge Tree - commonly used functions Notes

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

Published 38 original articles · won praise 17 · views 4286

Guess you like

Origin blog.csdn.net/qq_14877637/article/details/104653258