- 博客(6)
- 收藏
- 关注
原创 STL各容器底层数据结构总结
看了《STL源码剖析》,对于里面的容器,下面进行了简单的总结。1.vector: 底层使用数组保存。push_back时若已经满了,则会2*n扩展空间,若实际元素数量低于分配空间的1/4,则会将空间回收为原来的一半。《STL源码剖析》里面没有讲到空间的回收,是之前查找资料时看到。调整空间时,是先申请新的空间,然后将旧空间的内容拷贝过去,然后再释放旧的空间。 只适用于快...
2019-05-28 19:38:39 554
原创 STL中的Traits技法记录
看过《STL源码剖析》的人,一定会知道里面讲到的Traits编程技法。刚开始看到书上这部分的介绍的时候,是有点不太理解这个技法的作用的,但是经过网上找资料了解之后,并且反复看了书上的内容之后,才渐渐了解到这个技法的重要性,对于迭代器及泛型思维的重要性。一句话简述这个技法的主要作用,就是:可以通过迭代器的某个操作,直接获取迭代器里面保存的容器的元素类型。如果没有Traits技法,是无法实现这个操...
2019-05-27 23:20:02 377
原创 Redis内存信息查看相关
info命令可以查看Redis的很多信息如CPU、Memory、Clients的信息,显示内容如下:# Serverredis_version:4.0.8redis_git_sha1:00000000redis_git_dirty:0redis_build_id:fac27060400e1468redis_mode:standaloneos:Linux 3.10.0-514.el7...
2019-05-16 14:57:56 2167
原创 一致性Hash算法的作用
这里不介绍一致性Hash算法的原理,后面再补充,可以先看下面的文档:什么是一致性Hash算法? 该算法的原理用一句话将就是将服务器节点分布到一个环上,必要时需要增加虚拟节点(映射到真实节点),查找的时候根据Hash算法定位到环上的某个点,然后再顺时针找到最近的一个可用的服务器节点。(图片来自上面的链接,...
2019-05-10 11:57:31 1546
原创 Skipped 'XXX.txt' -- Node remains in conflict 问题解决
最近在Linux下使用SVN的时候,不知道做了什么操作,导致部分文件更新的时候出现了"Node remains in conflict"的错误。文件一直更新不了,即使删除了也无法正常update。网上找了很多种方法,终于找到了一种能够正确解决的方法:[server@localhost xxxsvr]$ svn revert --depth=infinity xxx_state[serv...
2019-05-10 10:59:29 1559
原创 new(p) T1(value) 的操作
最近开始看《STL源码剖析》,看到空间配置器的时候,发现这么一段代码:template <class T1, class T2>inline void _construct(T1* p, const T2& value) { new(p) T1(value); // placement new. invoke ctor of T1}通过...
2019-05-09 21:04:21 3790 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人