11 2020 档案
摘要:首先向侯捷大佬致敬。 本文记录一个自定义的通用hash函数的写法,涉及了变参模板的用法 template<typename T> void hash_combine(size_t& seed, const T& val) { /*使得seed足够乱序而已*/ seed ^= std::hash<T>
阅读全文
摘要:在vs2013跑list容器的时候报了个错,查了incompatible翻译为 ”不相容的“,云里雾里都不知道什么鬼; list<int>::iterator find_Value(list<int> L, int newValue) { return find(L.begin(),L.end(),
阅读全文
摘要:priority_queue又叫优先队列,其实应该算是一个容器适配器,存储结构默认设置为vector,特点是每次使用pop()都会弹出最大优先级的那个元素,原因就是这个容器的排序准则是维持一个大根堆(1.根节点要大于等于左右节点,但是左右节点没有要求谁大谁小。2.元素的逻辑模型应该为一颗完全二叉树)
阅读全文
摘要:看vector的insert方法时跟到最后有一段关于memmove的调用,总觉得不得劲,想知道它的实现 看了个大佬的博客,记录一下 其中关键的三点如下: (1)当源内存的首地址等于目标内存的首地址时,不进行任何拷贝(2)当源内存的首地址大于目标内存的首地址时,实行正向拷贝 (3)当源内存的首地址小于
阅读全文
摘要:deque容器的结构就是多个指针串接起来的多块缓冲区,其中的指针也保存在一块缓冲区中,源码中称其为map(不是容器map),借此实现连续空间的假象,说起来其结构比真正的连续空间vector复杂多了,好处就是不用特意维持一块真正的连续空间(想想如果数据量超级大,当空间满了后需要继续添加元素,就得整个进
阅读全文
摘要:stl里list容器的sort需要自己定义实现,初看源码一头雾水,有位大佬分析的很好,故作此记录 https://blog.csdn.net/chenhanzhun/article/details/39337331counter 源代码如下(2.91版) void list<T, Alloc>::s
阅读全文