原创 C++ STL 中unordered_map和map

STL中unordered_map和map實現的原理不同: map:採用的是紅黑樹來實現節點的保存,所有鍵值都是經過排序的存儲的; unordered_map:採用的數組+鏈表的形式保存的,根據不同的key的哈希值,存放到數組中不

原创 Python 類 @property

@property 在類函數上使用,可以在調用成員函數的時候,直接使用名稱即可 class Person: def __init__(self,name,age): self._name = name

原创 Python判斷和循環

條件判斷 total = 32.0 #條件判斷可以任意組合 elif 可以有0到多個,else可有可無 #條件判斷可以任意嵌套 if total > 25.0: dist = 0.9 elif total > 30:

原创 Python操作MYSQL數據庫

連接數據庫 import pymysql #第一種方式 db = pymysql.connect(host='localhost',user='root',password='123456',database='aaa') #第二

原创 Python元組和字典的用法

元組 var = tuple() var = () print(type(var)) <class 'tuple'> 元組的複製 var = (1,2,['q','a']) print(var) a,b=10,20 prin

原创 Python之格式化字符串format和Math庫

常用的數學函數庫math import math print(math.pi) print(math.sin(math.pi/4)) 輸出: 3.141592653589793 0.7071067811865476 格式化字符

原创 C++ dynamic_cast注意事項之二

之前的時候寫過關於dynamic_cast相關的知識點,詳見一前的文章: C++ dynamic_cast運算符的使用 dynamic_cast:“XXX”不是多態類型 這次要說的是向下裝換的問題,dynamic_cast可以轉換

原创 MySQL中利用插入語句修改已有的字段的值

在使用MYSQL數據庫中經常會碰到語句的增刪改查,其中首先就是記錄的添加,一般會使用insert into語句。例如有一張表就是記錄學生信息的 裏面已經有了幾條記錄: 我在插入一條記錄,可以寫SQL語句: insert int

原创 Python設計模式-備忘錄模式

在不破壞內部結構的前提下捕獲一個對象的內部狀態,這樣便可以在以後將該對象回覆到原先的狀態 備忘錄模式最大的作用就是備份,可以保存對象的一個狀態備份,這樣可以在將來的某一個時刻恢復到之前的狀態。 from abc import AB

原创 Python設計模式-橋接模式

橋接模式:將抽象和實現解耦,使他們可以獨立的變化 橋接模式是結構型模式,側重於軟件結構 from abc import ABCMeta,abstractmethod class Shape(metaclass=ABCMeta):

原创 Python設計模式 - 模板模式

模板模式:定義一個操作中的算法的框架,而將算法中的某些步驟放到子類中實現,使得子類可以在不改變算法結構的情況下重新定義某些特定的步驟。 from abc import ABCMeta,abstractmethod class T

原创 Python設計模式-訪問者模式

訪問者模式:封裝一些作用於某種數據結構中各元素的操作,它可以在不改變數據結構的前提下定義作用於這些元素的新的操作。 核心思想:可以在不改變數據結構的前提下定義作用於這些元素的操作,將數據結構和操作進行解耦,而且能更方便的拓展操作

原创 Python設計模式-享元模式

享元模式:運用共享技術有效地支持大量細粒度對象的複用。 享元對象關鍵是區分內部狀態和外部狀態: 內部狀態:存儲在對象內部並且不會隨着環境改變而改變的狀態 外部狀態:隨着環境改變而改變的、不可以共享的狀態,外部狀態並且有客戶端保存,

原创 Python中關鍵詞用法

_ new__ 負責對象的創建,是構造函數,他需要返回一個實例,它是一個類的方法 _ init___負責對象的初始化,負責對 _new__s實例化的對象進行初始化,即對對象的狀態和屬性進行設置,他不允許有返回值 class St

原创 Python設計模式-適配器模式

適配器模式:將一個類的接口變成客戶端期望的另外一種接口,從而是原本因爲接口不匹配的類能夠在一起工作。 適配器模式有兩種實現方式:一種是組合的公式,一種是繼承的方式 from abc import ABCMeta,abstractm