# Difference between map & unordered_map

目前有三个容器我不太了解其内部实现,打算通过 进行学习 map multimap unordered_map map map 是目前最简单的结构,实现的方法是 BST(binary search tree)。因此,其时间复杂度等都与 BST 相同,搜索,增加,删除基本时间都是 log(n)。 use map when 数据有序 需要按照有序的顺序获得元素 unordered_map unordered_map 则是通常所说的 hash table,哈希表,搜索,增加,删除都是以hash表为主,较好的情况是o(1),也就是hash函数可以较好的把元素分布到表中,如果 hash 函数比较糟糕,则每一次添加删除查找,都是完整遍历一个表。 use unordered_map when 对数据计数 只需要根据 key 访问 value 简单来讲,就是当你需要使用 vector 来计数的时候,可以用 unordered_map 来代替。 | map | unordered_map --------------------------------------------------------- Ordering | increasing order | no ordering | (by default) | Implementation | Self balancing BST | Hash Table | likeRed-Black Tree | search time | log(n) | O(1) - Average | | O(n) - Worst Case Insertion time | log(n) + Rebalance | Same as search Deletion time | log(n) + Rebalance | Same as search multimap multimap containers are generally slower than unordered_multimap containers to access individual elements by their key, but they allow the direct iteration on subsets based on their order.

Read More

关于我

Master@USTB 开源爱好者。创业者。我相信Mozilla宣言。 Email:blog#svtter.cn Friends 英勇的小明 奋斗的承诺 Kinice It-tree 曾用博客 http://blog.csdn.net/svitter https://segmentfault.com/blog/svtter

Read More

# Python文件操作

Python的文件操作很多,为了方便以后查询使用,在此做下记录。 注:这些函数都可以在官网查询,这里做个cache。 遍历文件 遍历当前文件夹,并且 for file in os.listdir(path): file_path = os.path.join(path, file) print(file_path) 判断文件是否存在 判断文件是否存在,如果不存在,创建新文件夹 if not os.path.exists(path): os.mkdir(path) 删除文件 递归的删除文件 import shutil shutil.rmtree(file) shutil是一个high-level file operations,因此相对于其他的python接口,更加偏向于人们的习惯性思维。

Read More

笔记列表

sphinx-learn algorithm_note python_note 这些笔记用 Sphinx 进行书写的,Sphinx 着实不是特别好用,学习曲线有些陡峭,后面打算切换到语雀什么的,可能会舒服一些。就是可能不够自由。 如果喜欢本博客,建议添加 RSS 订阅

Read More

从Vim转到Atom


vim 真香

2018-08-27

Vim大大小小也算是用了3年了,中间也尝试过不少IDE,从爽度上讲,Visual Studio绝对是最令人舒爽,
愉快的。不过,Windows本身的体验太差——对bash的支持太差;朋友win经常死机;因此不太喜欢用vs。
此外,vs收费,手头没钱。因此,决定使用Atom来做下一步的开发。

为什么不用Vim了

Vim搭配python-mode的确是能带来不错的书写体验,但是因为Vim本身功能需要自己来写,
vimscript在我这里着实不好用,学习起来虽然不能说有很大的难度,但是不同插件之间的调整,
以及出现小问题闪现而过得debug信息【输入:message来查看】等等,都不是很舒服。

此外,我的Vim插件很多,运行速度已经受到比较大的影响,代码跳转速度都有些慢,体验着实不好;

转到Atom

Atom和Sublime比较了一下——虽然Sublime拥有用Python写扩展的优势,但是因为收费,而且我不认为这
个软件能让我心甘情愿的为其掏腰包,所以就干脆放弃了。选择了Atom。VsCode因为是微软家的东西,道理
上讲应该很棒,但是因为在开源开发者那边,大家可能不喜欢微软的一些做派,所以一些大牛不喜欢给微软
开发插件——因此最终决定转移到Atom。

此外,代码补全功能上,Atom的体验实在是太棒了!

Read More

# Docker swarm 学习

本文的学习过程主要是通过 Docker 官方文档 花了一段时间学习 Docker swarm,一个docker的容器集群服务,来应对即将到来的高并发项目需求。 Docker machine Docker machine 是 Docker 官方编排的项目之一,可以理解成一个 Docker 宿主机器的统一管理CLI,自部署不是很好用:目前国内仅仅 aliyun 支持,其他的我在官方文档中没有找到。 Docker machine 的安装十分简单,通过官网提供的脚本即可,For Linux: $ base=https://github.com/docker/machine/releases/download/v0.14.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo install /tmp/docker-machine /usr/local/bin/docker-machine 安装好以后,即可按照相关的操作进行运行。 比如,创建两个虚拟机: $ docker-machine create --driver virtualbox myvm1 $ docker-machine create --driver virtualbox myvm2 进入虚拟机: $ docker-machine ssh myvm1 显示虚拟机 NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS myvm1 - virtualbox Running tcp://192.

Read More

# leetcode 相交链表

这是leetcode的解题报告。ARTS很想加入,但是因为自己懒,本身也做了这些事情,因此就一直都在拖,希望这周能够搞定。 origin from leetcode road 相交链表,两个指针分别遍历两个链表即可,具体可以画图来表示,两个链表,一个长度为 a+c,另一个长度为 b+c,两个指针势必会在 a+b+c 的位置相遇。 solution /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { ListNode *w1, *w2; w1 = headA; w2 = headB; if (!w1 || !w2) { return NULL; } while (w1 != w2) { if (!

Read More

# 找房启示

安居客是不太行,所有的看起来不错的房源,没有一个能联系上,联系上的全都是没有了,建议别用安居客。 找房几个关键因素: 阳光好,(朝南) 床板硬,不凹陷 淋浴头水力充足 独立卫浴, 地铁口附近, 没有汽车声音 没有蟑螂老鼠, 隔音好, 马桶,是否正常使用 热水器,是否正常使用 冬天供暖多少度(集体供暖还是) 空调制冷情况, 房产证(是否和房东签合同) 水电如何收费,怎么缴费(商电民电等,差距比较大) 暖气费(一般是房东或者中介交) 天花板是否漏水,这个不要因为不是顶楼就不看,不是顶楼照样漏水! 设施损坏维修问题 Wi-Fi,空调 根据这几个关键因素,找了两天的房子,终于有点收获,但是前期看房没有效率,耗费了不少的时间。此外,房子的地点需要额外精心挑选,离地铁近能省好多好多事情。。 自如贵一些,服务质量高,但是个人感觉是有溢价的,因此如果自己懂的套路多,又不是很懒,就可以避免。 链家和我爱我家,两大巨头,处理事情方便,房子相对小中介来言靠谱许多。 一些公寓的评论——来自微博和知乎,许多都在讲存在管家态度不好,以及隔音差,维修慢等问题。我感觉这个还是要看付了多少钱。一分价钱一分货,如果价格低,不要奢求太多。

Read More

# 解决 DD 之后 Mac 搞不定 USB 的问题

搜索了一通(可能是关键字找的不对),发现 Mac 对于磁盘异常的解决方案着实不多,因此用以下粗暴方法解决; 输入: diskutil list 找到所需的 /dev/disk4 然后运行 sudo dd if=随便什么文件 of=/dev/disk4 此后再用disk utility.app进行格式化等等即可。 后来发现这个方法搞定的U盘往往出现一些诡异的问题,比如说在 Windows 的不同版本下无法读取,因此最好还是重新修复一下分区表。

Read More