原创 STL-foreach算法

for_each算法用於遍歷容器中的元素,前提是容器必須要提供迭代器,例如stack容器、queue容器本身不提供迭代器,所以不能使用for_each算法。 for_each的源碼(P.J. Plauger版本)實現如下: templat

原创 STL-map和multimap容器

1. map/multimap基本概念 Map/multimap內部是以紅黑樹爲實現機制,具有能夠自動對元素進行排序和查找效率優良的特性。所有元素都會根據元素的鍵值自動排序。Map所有的元素都是pair,同時擁有實值和鍵值,pair的第一

原创 VS2015配置動態庫

有時在VS2015中需要一次性配置庫的目錄,創建新的項目時能夠無須再次配置庫相關目錄. 可進行如下配置: 1. 打開 VS 屬性管理器 2. 配置庫頭文件所在目錄 3. 配置附加庫目錄 也就是配置庫 lib 文件所在目錄.

原创 STL-transform算法

transform算法的作用是 將一個容器中的值搬運到另一個容器中。提供了兩個重載版本,我們先看下transform的源代碼實現: 重載版本一: template<class_InIt, class _OutIt, class _

原创 C++模板(二)-類模板

1. 類模板基本概念 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。 類模板用於實現類所需數據的類型參數化 類模板在表示如數組、表、圖等數據結構顯得特別重要,這些數據結構的

原创 STL-deque容器

1. deque容器基本概念 Vector容器是單向開口的連續內存空間,deque則是一種雙向開口的連續線性空間。所謂的雙向開口,意思是可以在頭尾兩端分別做元素的插入和刪除操作,當然,vector容器也可以在頭尾兩端插入元素,但是在其頭部

原创 STL-string容器

1. string容器基本概念 C風格字符串(以空字符結尾的字符數組)太過複雜難於掌握,不適合大程序的開發,所以C++標準庫定義了一種string類,定義在頭文件<string>。 String和c風格字符串對比: 1. Char*是一個

原创 pygame編寫飛機大戰(2)-pygame快速入門

# ----------窗口相關操作----------- # 創建窗口 scene = pygame.display.set_mode([屏幕寬,屏幕高]) # 設置窗口標題 pygame.display.set_caption("標題

原创 pygame編寫飛機大戰(1)-準備

我們要做飛機大戰效果如下:   我們的開發環境:pycharm + python3.4.4 + pygame1.9.3 pygame是可用來編寫遊戲的免費的Python模塊。它是基於SDL(C語言遊戲庫)庫的,使用pygame我們可以

原创 STL-find算法

find算法用於在容器中查找某個指定的值。find算法實現如下: template<class _InIt,class _Ty> inline_InIt _Find(_InIt _First, _InIt _Last, const _T

原创 STL-list容器

1. list容器基本概念 鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱爲結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲

原创 STL-adjacent_find算法

adjacent_find算法用於在容器中查找相鄰重複元素。 adjacent_find算法實現源碼如下: template<class _FwdIt> inline _FwdIt adjacent_find(_FwdIt _Fir

原创 pygame編寫飛機大戰(4)-滾動地圖

我們要實現飛機在場景中飛行的效果,我們可以選擇背景地圖滾動,相對來襯托飛機在移動。如何實現背景的滾動效果,我們可選取兩張圖片,兩張圖片交替向下移動,當某張圖片完全移動到屏幕外側,那麼馬上再次設置爲開始位置,重新開始移動。圖示入下: 這裏

原创 STL-stack容器

1. stack容器基本概念 stack是一種先進後出(First In Last Out,FILO)的數據結構,它只有一個出口,形式如圖所示。stack容器允許新增元素,移除元素,取得棧頂元素,但是除了最頂端外,沒有任何其他方法可以存取

原创 pygame編寫飛機大戰(5)-子彈類

我們現在編寫子彈類,我們設計子彈爲了通用一點,敵人飛機向下發射子彈,英雄飛機向屏幕上方發射子彈,那我們就在創建子彈的時候,設置傳遞一個參數,根據參數來選擇子的子彈的圖片和子彈移動的方向。 這裏注意一點,pygame.image.load(