使用STL时遇到的新bug
正文 cpp的STL并不是万能的,最近在使用STL时,发现list容器的size()方法和empty()方法的时间复杂度居然不一样,通过查阅资料发现,list中size()方法居然是对整个容器从头遍历一遍,empty()方法则是判断首尾两个指针是否相等。这样一来,在性能要求非常高的情况下,若要对list判空,则只能用empty()方法。 在网络通信过程中,性能并不完全取决于程序写的好坏,也与通信机器本身、是否绑定CPU核心、以及带宽有很大关系。在我对项目进行集成测试的时候,发现将系统部署在我的开发虚拟机上时,两个进程的通信速度就有瓶颈,而将机器部署在实际的测试机器上时,在一般速度下,这个瓶颈就自然消失了。 在记录一个坑,这个坑之前其实踩过一次了,但是我没有长记性,又踩了一次,这就是对指针取地址的这个操作了。 对于一个数组,若要对其进行操作,如memcpy,一般这样来做 char buffer[4096]; char name[30]; memcpy(name, buffer, sizeof(name)); memcpy(name, &buffer[0], sizeof(name....