原创 L2-012 關於堆的判斷 (25 分)
#include<iostream> #include<vector> #include<set> #include<string> #include<algorithm> #include<string.h> #include<sst
原创 讓代碼更加簡潔的五大原則,簡明敘述
1取變量名時像給孩子取名字一樣認真 2一個函數只做一件事,長度不宜過長(<20行) 3循環、判斷的嵌套儘量地少,最好小於等於兩層 4讓類只有一種職責 5不要着急實現功能,先想好這段代碼應該放在哪裏
原创 python實現空對象模式
空對象模式簡介 額外定義一個對象來表示NULL 好處 (1)它可以加強系統的穩固性,能有有效地防止空指針報錯對整個系統的影響,使系統更加穩定。 (2)它能夠實現對空對象情況的定製化的控制,能夠掌握處理空對象的主動權。 (3)它並不依靠
原创 C++ 中auto與auto&的區別 (詳細)
使用auto標明一個變量,這個變量永遠不會是引用變量。 使用auto&標明一個變量,這個變量有可能被編譯器推導爲引用變量。 #include <iostream> #include<vector> #include <time.h>
原创 從《笑傲江湖》輕鬆學建造者模式!生動理解建造者模式
華山練劍 建造者模式抽象出了建造過程,繼承Builder可以重寫具體過程函數,Director類定義了具體過程的先後次序。 小試牛刀 class HuaShanBuilder: #練氣 def lianQi(self):
原创 C++實現兩個類的強關聯關係
一個類對象直接持有另外一個類對象的引用, 兩個類就是關聯關係,互相持有引用,就是強關聯關係。 #include <iostream> using namespace std; class testClass { public:
原创 CFGAN pytorch實現
CFGAN簡介:基於GAN的推薦算法模型 CFGAN pytorch實現代碼鏈接
原创 設計模式-開閉原則-通俗介紹
介紹 開放閉合原則,意思就是軟件實體(類、模塊、函數、方法)應該可以擴展,但是不可以去修改。 爲何不能修改程序 一個類寫好之後不會是單獨的存在,必定是和其他類建立聯繫。當我們修改了某個類,很有可能與之關聯的類出現問題。可能會有讀者說:那我
原创 一文讀懂如何使用starUML繪製類關係圖
正文 前言 接下來我們畫一張比較完整的類圖,類間關係有:繼承、組合、聚合、依賴、關聯 參照的圖是: 開始畫圖 如圖所示先點擊左邊Toolbox 中的class,然後在中間白色畫布上點擊一下,這樣就出來了一個類。 我們
原创 設計模式-單一職責原則介紹與理解
描述 一個類應該專注於實現一個功能。 好處 便於代碼複用 舉例 俄羅斯方塊遊戲,首先可以想到的是遊戲邏輯與界面的分離,也就是說邏輯一個類,界面部分一個類。這樣做的好處就是我們可以複用遊戲邏輯的代碼,例如我們用java寫了一個基於PC端的俄
原创 C++智能指針實現類多態
智能指針讓我們不再操心內存泄露的問題 類多態是面向對象的一大特性 普通指針可以實現類多態,智能指針同樣也能,請看代碼 #include <iostream> #include<vector> class Base { public:
原创 python設計模式-工廠模式-最簡潔的說明與代碼
工廠模式簡介 工廠模式實現途徑是一個類或者一個方法,通過這個類可以自動化創建出我們想要的對象。 工廠模式作用 便於實例化對象,還便於之後增加更多的對象。 代碼實現 class A: pass class B: pass
原创 GAN(生成對抗神經網絡)生成MNIST 基於pytorch實現
運行環境 pytorch1.3.0 需支持GPU 生成對抗神經網絡分爲兩部分: 生成器 鑑別器 生成器作用是利用隨機數生成以假亂真的
原创 python 變量屬於類還是對象
class People: num1=111 num2=222 def __init__(self,num1): self.num1=num1 print ("People "
原创 1004 Counting Leaves (30 分) 樹的生成與遍歷
關鍵點: 表示樹用什麼數據結構 map<int, vector<int> > tree; 鄰接表樹 #include <iostream> #include <vector> #include <set> #include <map