首頁 資料庫 mysql教程 stl中的map、set、multimap、multiset,兼谈OceanBase造轮子

stl中的map、set、multimap、multiset,兼谈OceanBase造轮子

Jun 07, 2016 pm 03:22 PM
map set stl

终于有机会有动力有能力看jjhou的《STL源码解析》了。采取快速翻阅模式,有望看完整本。 map和set的底层机制都是RB-Tree(红黑树),插入和查找都是O(lgN)的复杂度。map、set以前听说过,但从来不用,因为不了解,不知道背后是什么。通过读这本书了解到了其

终于有机会有动力有能力看jjhou的《STL源码解析》了。采取快速翻阅模式,有望看完整本。

map和set的底层机制都是RB-Tree(红黑树),插入和查找都是O(lgN)的复杂度。map、set以前听说过,但从来不用,因为不了解,不知道背后是什么。通过读这本书了解到了其背后的机制,也许在将来会用一用。

multimap和multiset没什么,只是对map和set的小修改而已。

除了这些,还有hash_map、hash_set,其底层机制不是RB-Tree,而是hash table。

了解到这些之后,map、set这些,都不神秘,都可控了。

目前还有一点需要再动手捉摸下:内存管理。STL的simple_allocator可定制行到底如何,得看看。

关于stl使用,最好的参考书莫过于cplusplus.com了

再扯一句OceanBase与STL。

OceanBase中几乎没有使用任何stl提供的功能,基本是在重复“发明轮子”,不过这种发明某种程度上我觉得看上去是合理的,比如:返回码、错误码的定制,这一点就具有很大的灵活性;内存使用方面可定制性也大很多;另外,也轻量很多;再另外,STL的接口也用得蛮头疼,一大段代码,全围着接口转了,也有办法不围着,多用用typedef就会看上去好很多。为什么OceanBase不用STL呢?我想,本质原因还是我们有一群很牛逼的工程师,有能力写出经得起考验的底层代码。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

springboot怎麼讀取yml檔案中的list列表、陣列、map集合和對象 springboot怎麼讀取yml檔案中的list列表、陣列、map集合和對象 May 11, 2023 am 10:46 AM

springboot怎麼讀取yml檔案中的list列表、陣列、map集合和對象

詳解MyBatis動態SQL標籤中的Set標籤功能 詳解MyBatis動態SQL標籤中的Set標籤功能 Feb 26, 2024 pm 07:48 PM

詳解MyBatis動態SQL標籤中的Set標籤功能

Java怎麼設定過期時間的map Java怎麼設定過期時間的map May 04, 2023 am 10:13 AM

Java怎麼設定過期時間的map

如何在 C++ STL 中實作客製化的比較器? 如何在 C++ STL 中實作客製化的比較器? Jun 05, 2024 am 11:50 AM

如何在 C++ STL 中實作客製化的比較器?

Nginx伺服器中map模組怎麼配置與使用 Nginx伺服器中map模組怎麼配置與使用 May 21, 2023 pm 05:14 PM

Nginx伺服器中map模組怎麼配置與使用

Java中將物件與Map相互轉換的實作方式 - 使用BeanMap Java中將物件與Map相互轉換的實作方式 - 使用BeanMap May 08, 2023 pm 03:49 PM

Java中將物件與Map相互轉換的實作方式 - 使用BeanMap

最佳化Go語言map的效能 最佳化Go語言map的效能 Mar 23, 2024 pm 12:06 PM

最佳化Go語言map的效能

使用php開發Websocket,實現即時地圖定位功能 使用php開發Websocket,實現即時地圖定位功能 Dec 17, 2023 pm 08:09 PM

使用php開發Websocket,實現即時地圖定位功能

See all articles