原创 STL中的Iterator

話不多說,就是總結幾個問題 1.什麼是迭代器 (1)迭代器可以看做一種智能指針,他會重載*和->運算符。 (2)但是它並不一定具備指針的所有運算符:p++,p--,p+n,p-n,p[n],p1-p2,p1<p2,p1!=p2 有可能它只

原创 STL中的Vector

看了一下vector的實現,感覺C++的內存管理,確實是需要非常認真對待的。 爲了追求效率,自身就需要仔細萬分,總結了3,4點感覺尤其如此。 1.vector的底層實現 這個倒是很簡單,vector就是一段動態分配內存的數組,加上冗餘空間

原创 STL中的Allocator

最近在看STL,寫一點博客。 關於一些細節可能就不放上來了,就寫一些我自己的心得。 1.爲什麼要用Allocator C++容器的設計思路是,對存放到裏面的東西是拷貝一份放進去。 而且裏面的空間都是動態分配的。 所以在構建容器的時候,需要

原创 STL中的Sort

下面是對於STL中的sort進行一個小結,包含 insert_sort bubble_sort quick_sort heap_sort merge_sort 幾種 1.stl_sort 這個是STL算法裏面的標準sort,因爲關聯容器如

原创 基於比較的排序算法的最優下界---NlogN

這個最優下界的意思就是說,這種算法最好的情況也至少需要這麼多步驟才能排出來。 進行非嚴格的推導。 N個數,一共有N!種排列。 比較i、j兩個元素,最多能夠確定多少種情況呢? 是N!/2,仔細想想快速排序,如果選到了一個號元素可以減少一半,

原创 數據庫查詢語句拾遺

先上一個總覽 select ①字段名、集合函數 ②from + left join + on  ③where  ④group by + having ⑤order by ⑥limit (1)集合函數 就是常見的MAX MIN COUNT

原创 Java中的hashMap

首先上個圖 key經過hash函數作用後得到一個槽(buckets或slots)的索引(index),槽中保存着我們想要獲取的值 本文討論給出的部分源碼,來源於Oracle JDK 1.7.0_71 本文主要講述hashMap的三個

原创 數據庫表關聯小結

1.inner、left、right join的區別? 這裏暫時不討論這幾種join的原理,與效率上的區別。 只考慮同樣的查詢語句,會不會導致不同的查詢結果。 這3種關聯的區別是,當兩個表有不關聯(即存在不符合on條件的條目)的條目存在時

原创 Java的JDK和JRE

就是說說這兩個的區別,最主要的難點就是說,JDK下面也有一個JRE爲什麼需要這個JRE 1.JRE下面有什麼? JRE下面主要就是①JVM和②一些類庫,比如BOOTSTRAP加載器需要加載的一些系統核心類庫。 直接上圖 2.JDK下面有

原创 C++中的trivial、standard layout、POD

在學習STL的時候,會反覆出現trivial和POD這樣的術語,這幾個概念如果要特別仔細地區分,只能說是蛋疼。 但是結合其在STL裏面的用意,爲了性能優化,不那麼學究地去考究其意義還是相對好理解的。 trivial是從其拷貝控制函數是否是

原创 Tair源碼閱讀1---ConfigServer

ConfigServer裏面涉及到的幾個最重要的對象是,configServer,dataServer,table,group 1.對象介紹 (1)table,對照表 key通過hash之後,再取模可以得到value存放在哪個桶。這個桶是

原创 Java類加載與反射

今天又看了李剛的《瘋狂Java講義》裏面關於類加載機制與反射的知識。 以前一直不知道,反射的原理,其實現在感覺還是比較自然的。 1.類加載的三大步驟 (1)加載 將類的class文件讀入內存,併爲之創建一個java.lang.Class對

原创 阿里中間件三大存儲系統

直接上名字:Tair、TDDL、TFS 它們都是分佈式存儲系統,下面來說說異同。 1.Tair 存儲類型:K-V,緩存 語言:C++ 2.TFS 存儲類型:非結構化文件存儲 語言:C++ 3.TDDL 存儲類型:結構化數據庫存儲 語言:J

原创 STL中的RB-tree

set和map的底層結構都是紅黑樹,它們最後基本只是對紅黑樹接口的簡單調用。 這裏就主要來說一說紅黑樹。 1.紅黑樹的定義 紅黑樹首先是一棵二叉搜索樹(BST),二叉的意思是每個節點最多有兩個兒子,搜索的意思是根節點大於左兒子,小於右兒子

原创 數據庫設計之問卷模塊的設計1

這兩個星期在設計一個問卷調查的數據庫,現在做一番總結。 平時作爲用戶,感覺很簡單的一個模塊,現在參與設計,雖然感覺還有無數不完善的地方,但是設計的時候,還是考慮了很多很多。 問卷模塊的設計 最主要的幾個實體就是:問卷、試題、選項、試題類