原创 C++ STL源碼學習(priority_queue內部heap篇)

stl_heap.h ///STL中使用的是大頂堆 /// Heap-manipulation functions: push_heap, pop_heap, make_heap, sort_heap. template <class

原创 C++ STL源碼學習(list篇)

///STL list爲雙向循環鏈表 struct _List_node_base { _List_node_base* _M_next; _List_node_base* _M_prev; }; template <clas

原创 C++ STL源碼學習(迭代器篇)

stl_iterator_base.h <span style="font-size:24px;"> /// This file contains all of the general iterator-related utiliti

原创 C++ STL源碼學習(construct、uninitialized篇)

stl_construct.h   ///該文件主要用於在指定內存顯式調用構造函數創建和析構對象template <class _T1, class _T2> inline void _Construct(_T1* __p, cons

原创 flask_sqlalchemy和SQL遇到的一個查詢

最近需要統計系統調用之間的成功率,使用的ORM是sqlalchemy,我的數據庫表如下所示: +-----------+---------------+----------+---------------------+ | caller

原创 C++ STL源碼學習(之RB Tree篇)

stl_tree.h 這是整個STL中最複雜的數據結構,也是我接觸到的最複雜的數據結構之一 /** Red-black tree class, designed for use in implementing STL associati

原创 初探linux內存管理

 在 Linux 中,用戶內存和內核內存是獨立的,在各自的地址空間實現。地址空間是虛擬的,就是說地址是從物理內存中抽象出來的(通過一個簡短描述的過程)。由於地址空間是虛擬的,所以可以存在很多。事實上,內核本身駐留在一個地址空間中,每個進

原创 C++ STL 源碼學習(之deque篇)

stl_deque.h /** Class invariants: * For any nonsingular iterator i: * i.node is the address of an element in the

原创 兩道筆試題

1、設一顆完全二叉樹共有699個節點,則這顆樹種葉子節點共有多少個? 首先記n爲二叉樹節點總數,n0 , n1 , n2位二叉樹中度爲0 , 1 , 2的節點數。 則有:n = n0 + n1 + n2; 又因爲二叉樹的規律:n0 = n

原创 C++的一道筆試題

void swap_int(int *a,int *b){ *a=*a+*b; *b=*a-*b; *a=*a-*b; } 以下說法正確的是: 結果不正確,因爲會溢出,用位與的方式就沒問題 結果正確,即使會溢出 結果正確,不

原创 flask starter: tadpole

tadpole 是一個flask starter 項目。從平時flask項目的開發過程中提出來的一些通用的功能,如通過gunicorn管理flask應用的配置文件和啓動腳本,初始化virtualenv環境同時安裝必要的依賴庫,生

原创 epoll 和 select 的區別

   面試linux的時候,很多面試官都會問的一個問題是epoll和select的區別,而我總是答的不夠完整,今天總結一下epoll和select的區別。    首先select是posix支持的,而epoll是linux特定的系統調用,

原创 vue + flask 實現的 linux web dashboard

最近抽空寫了一個linux 的 dashboard, 藉此熟悉了vue框架和前端構建技術webpack等技術, 偶爾一次看到羊駝的英文名叫alpaca, 就拿來做這個項目的名字了。 alpaca是一個基於vue2.0 pytho

原创 C++ STL源碼學習(之hash_table篇)

stl_hash_table.h 這不屬於C++標準,是SGI STL標準的一部分,用於輔助實現hash_map和hash_set /// Hashtable class, used to implement the hashed as

原创 C++ STL源碼學習之算法篇

///由於篇幅太長,因此,刪去了很多接口,只分析了內部實現,算法對迭代器的要求也被刪去/// search. template <class _ForwardIter1, class _ForwardIter2> _ForwardIter