linux下的list size函数遵循了严格的链表定义,得到一个所有结点数size函数是遍历所有结点得到,故使用时这个函数奇慢。而window下有个变量专门用于记录当前的结点数,所以大数据量在linux下用list的size时,一定要注意。。
linux下gdb看到的list size代码
std::list<int, std::allocator<int> >::size (this=0xbf833988)
at /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_list.h:657
657 { return std::distance(begin(), end()); }
windows下看到的list size代码
size_type size() const
{ // return length of sequence
return (_Mysize);
}
_Mysize的定义
size_type _Mysize; // number of elements
所用linux系统版本号
[root@localhost ~]# cat /proc/version
Linux version 2.6.18-128.el5 () (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Dec