原创 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