CCF CSP考试的服务器是Linux系统版本,同时其编译器版本比较低,所以有时候在VS或DevCPP等其他IDE下能编译通过的程序,CCF上会编译错误。
下面以 C++中unordered_map的版本兼容性问题 说明
在C++中最让我蛋疼的事情之一就是unordered_map千呼万唤才出来,在C++早期版本标准库里面只有map这个字典。 但是map的内部实现是采用的红黑树,众所周知,对于字典这类结构也可以用hash表来实现,也就是C++的标准库应该也要有hash_map这种数据结构。
红黑树实现的map占用内存较小,但是查找效率不高,O(logn)的查找效率。
hash表实现的map占用内存较大,但是查找效率高,往往可以逼近O(1)的惊人查找效率。
在C++中关于map的hash表方法的实现是unordered_map这个数据结构,首次出现应该是在C++98那个年代的tr1这个命名空间里面出现。 使用方法写起来比较啰嗦。
#include <tr1/unordered_map>
using std::tr1::unordered_map;
我认为像unordered_map这个数据结构差不多就是C++程序员的柴米油盐,生活必需品。 但是由于C++标准委员会的懒散,硬生生是拖到c++0x/c+&