原创 一致性hash算法 C++語言實現

一致性hash算法 C++語言實現     在《一致性hash算法(consistent hashing)》一文中已經介紹了一致性hash的基本原理,本文將會對其具體實現細節進行描述,並用c++語言對一致性hash進行了簡單

原创 mysql到底用哪一款存儲引擎呢

MySQL數據庫MyISAM和InnoDB存儲引擎的比較 MySQL有多種存儲引擎,MyISAM和InnoDB是其中常用的兩種。這裏介紹關於這兩種引擎的一些基本概念(非深入介紹)。 MyISAM是MySQL的默認存儲引擎,基於傳統的

原创 map unordered_map hash_map比一比

map hash_map unordered_map 性能測試 2012-01-08 22:27:29 分類: C/C++ by zieckey 測試條件: gcc version 4.2.1 20070719 

原创 技能編輯器

之前做過一款類爐石的手機遊戲 由於爐石技能比較複雜 對於技能的設計採用"0-1-0-4-0-0-0:2-100-0-0-0-0;."格式進行配置。

原创 在vector中,怎樣刪除某個指定值的元素

【在vector中,怎樣刪除某個指定值的元素】 Vectors provide no operation to remove elements directly that have a certain value. You must

原创 我想在linux下用json

jsoncpp在linux下的配置 JSON 官方的解釋爲:JSON 是一種輕量級的數據傳輸格式。 關於 JSON 更具體的信息,可參見 JSON 官網:http://www.json.org。 jsoncpp 是比較出名的 C++

原创 C++ STL的底層數據結構都是啥

C++ STL 的實現: 1.vector  底層數據結構爲數組 ,支持快速隨機訪問 2.list    底層數據結構爲雙向鏈表,支持快速增刪 3.deque   底層數據結構爲一箇中央控制器和多個緩衝區,詳細見STL源碼剖析P1

原创 安全刪除STL容器元素

STL容器迭代過程中刪除元素技巧(轉) 1.連續內存序列容器(vector,string,deque) 序列容器的erase方法返回值是指向緊接在被刪除元素之後的元素的有效迭代器,可以根據這個返回值來安全刪除元素。 vector<i

原创 改天記得把自己那個代碼中的改成這個boost::lexical_cast

c++數據類型萬能轉換器boost::lexical_cast . boost::lexical_cast爲數值之間的轉換(conversion)提供了一攬子方案,比如:將一個字符串"123"轉換成整數123,代碼如下: strin

原创 __attribute__((constructor)) 高版本gcc不執行

__attribute__((constructor)) // 在main函數被調用之前調用 __attribute__((destructor)) // 在main函數被調用之後調  static void func() __

原创 爲什麼求模運算要用素數(質數)—— 哈希表設計

爲什麼求模運算要用素數(質數)—— 哈希表設計   By admin | 2013 年 7 月 25 日 | 雜記, 編程技術 在設計用除法來散射的哈希表時,我們都會用數值模哈希表大小,得到的餘數來作爲ID存入哈希表對應格子中。

原创 vector內存怎麼釋放

VECTOR的工作原理是系統預先分配一塊CAPACITY大小的空間,當插入的數據超過這個空間的時候,這塊空間會讓某種方式擴展,但是你刪除數據的時候,它卻不會縮小。 vector爲了防止大量分配連續內存的開銷, 保持一塊默認的尺寸的內存,

原创 應用 Valgrind 發現 Linux 程序的內存問題

應用 Valgrind 發現 Linux 程序的內存問題 如何定位應用程序開發中的內存問題,一直是 inux 應用程序開發中的瓶頸所在。有一款非常優秀的 linux 下開源的內存問題檢測工具:valgrind,能夠極大的幫助

原创 簡潔的發包--網絡遊戲

單個協議數據(不含頭)大小超過32字節,進行zlib壓縮。 單個協議發送數據大小不超過64K,如果超過了,在邏輯層把協議中數據,手動拆分多次發送。

原创 protobuf的數據類型和C++數據類型

protobuf支持的數據類型不是很豐富 protobuf屬於輕量級的,因此不能支持太多的數據類型,下面是protobuf支持的基本類型列表,一般都能滿足需求,不過在選擇方案之前,還是先看看是否都能支持,以免前功盡棄。同樣該表也值得收