我在使用函数式编程时,遇到了一个问题,背景是这样的:一个项目中存在了大量的函数,这些函数之间的相互调用,使得导致代码逻辑比较复杂。当我想要修改一个逻辑的时候,需要反复的查看代码,以及定义新的函数。
函数相对独立,本身是一个很好的特点。然而,正是因为相互独立,使得函数和函数的依赖关系缺失,反而造成了程序设计与改动的不方便。
[阅读全文]我在使用函数式编程时,遇到了一个问题,背景是这样的:一个项目中存在了大量的函数,这些函数之间的相互调用,使得导致代码逻辑比较复杂。当我想要修改一个逻辑的时候,需要反复的查看代码,以及定义新的函数。
函数相对独立,本身是一个很好的特点。然而,正是因为相互独立,使得函数和函数的依赖关系缺失,反而造成了程序设计与改动的不方便。
[阅读全文][阅读全文]这篇文章的文字水平一般。之所以要写这篇文章,一方面是为了记录自己的开发历程,另一方面是为了少部分同频的伙伴给予引导。也是为了完成每个月博客文章的 KPI。
在使用 Vue 的时候,如何向 Django 提交 form?
[阅读全文][阅读全文]GitHub link: https://github.com/Svtter/2InOne
最近发现 Django settings 在使用的时候,容易出现不经过检查的问题。 因此,想要在 settings 的基础上严格约束一下,减少问题。
[阅读全文]又有一段时间没有更新博客啦!这篇文章是vscode
使用技巧。
Kotlin 真是一个很可爱的语言。
[阅读全文]目前有三个容器我不太了解其内部实现,打算通过 <c++ primer> 进行学习
map 是目前最简单的结构,实现的方法是 BST(binary search tree)。因此,其时间复杂度等都与 BST 相同,搜索,增加,删除基本时间都是 log(n)。
unordered_map 则是通常所说的 hash table,哈希表,搜索,增加,删除都是以hash表为主,较好的情况是o(1),也就是hash函数可以较好的把元素分布到表中,如果 hash 函数比较糟糕,则每一次添加删除查找,都是完整遍历一个表。
简单来讲,就是当你需要使用 vector 来计数的时候,可以用 unordered_map 来代替。
| map | unordered_map --------------------------------------------------------- Ordering | increasing order | no ordering | (by default) | Implementation | Self balancing BST | Hash Table | like Red-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 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.
[阅读全文]