原创 C++之shared_ptr總結

Share_ptr也是一種智能指針。類比於auto_ptr學習。所以推薦先學習auto_ptr,再來學習shared_ptr。本博客的前兩個就是auto_ptr的總結。希望感興趣的朋友可以看看。   Shared_ptr和auto_ptr

原创 C++之虛函數的原理

1. 看看一個類中如果有虛函數,它的內存佈局: class A{ double i; int j; virtual void foo(){} virtual void fun(){

原创 C++之命名空間

C中是沒有命名空間這個概念的,是C++中新引入的一個東西,爲了處理同名的衝突。 其實命名空間就是封裝的一個概念。把一些變量、函數、類給封裝起來。和類的封裝概念很像,但是比類的封裝要大。   一、淺析 1. 自定義定義命名空間 格式:Nam

原创 查找數組中重複次數最多的數字

題目: 給定一個大小爲n的數組,該數組包含數字的範圍在 [0...k-1], k是一個正整數,k < = n。在這個數組找到重複次數最多的數字。 要求時間複雜度爲n,空間複雜度爲1,可以使用原數組。 原理: 遍歷數組,讓每個元素作爲下標的

原创 C++之引用

C++中的引用就相當於對一個變量的別名。 int a,j=3; int &b=a; b=j; 出現b的地方,就相當於a,可以把b都替換掉a。 注意: 1. 引用在聲明時必須進行初始化。 2. 引

原创 epoll詳解

什麼是epoll epoll是什麼?按照man手冊的說法:是爲處理大批量句柄而作了改進的poll。當然,這不是2.6內核纔有的,它是在2.5.44內核中被引進的(epoll(4) is a new API introduced in

原创 Unix網絡編程學習筆記之第11章 名字與地址轉換

一、 域名系統(DNS) 1. 簡介 DNS主要用於主機名和IP地址之間的映射。 主機名可以是簡單的名字ljm,也可以是全限定域名ljm.localdomainbaidu.com等。   2.資源記錄 DNS中的條目稱爲資源記錄(RR)。

原创 Apache Thrift - 可伸縮的跨語言服務開發框架

前言: 目前流行的服務調用方式有很多種,例如基於 SOAP 消息格式的 Web Service,基於 JSON 消息格式的 RESTful 服務等。其中所用到的數據傳輸方式包括 XML,JSON 等,然而 XML 相對體積太大,傳輸效

原创 Unix網絡編程學習筆記之第7章 套接字選項

一、獲取/設置套接字選項的方法 一個套接字描述符相關聯的套接字選項很多。獲取/設置套接字選項的方法: 1.  getsockopt和setsockopt函數 2. fcntl函數 3. ioctl函數   二、 getsockopt和se

原创 一致性哈希的淺析

一致性哈希 Consistent hashing is a special kind of hashing such thatwhen a hash table is resized, only K/n keys need to be r

原创 Unix網絡編程學習筆記之第6章 I/O複用:select和poll函數

一、I/O複用應用場合 1. 當客戶處理多個描述符(既有標準輸入,又有網絡套接字)時,必須使用IO複用。 2. 一個客戶同時處理多個套接字是可能的。 3. 如果一個服務器既要處理監聽套接字,又要處理已連接套接字,一般就要使用I/O複用。

原创 Unix網絡編程學習筆記之第3章 套接字編程簡介

1. 首先我們說一個IPv4的套接字地址結構: struct in_addr { in_addr_t s_addr;//! }; struct sockaddr_in{ uint8_t sin_len;