Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
总结一下如何使用std::vector才能不被卡常std::vector其实优化后可以和数组一样快,还有一个独特的优势是如果打开-D_GIBCXX_DEBUG编译选项后,下标访问越界会报错,debug的时候非常方便(而且这样就不存在把数组稍微开大点的玄学问题了) 不过vector的首次初始化非常花时间,一定要分配大块数组,千万不要在每个节点里面写vector<Edge> neighbors这样的愚蠢操作。 push_back放心用,非常快。不过记得提前reserve避免realloc的开销。 BTW, list我没试过,但是非常快且好用的forward_list属于C++11的内容,在poj以外的平台可以放心用,和手写的单链表等价(这玩意为了效率甚至不支持size)。 还有不要碰cin/cout,慢得要死,最好是自己封装一个假的cin/cout,把内部实现改成手动解析,这样写起来也会很爽。 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator