設計模式的基本準則

單一職責原則  (SRP)一個類,最好只做一件事,只有一個引起它變化的原因。開放-封閉原則  (OCP:The Open-Closed Principle)軟體實體(類,模組,函數等等)應該是可以擴充的,但是不可修改的。依賴倒轉原則  (DIP)這個原則的內容是:要依賴於抽象,不要依賴於具體。或者說是:要針對介面編程,不要對實現編程(Program to an interface,not an

二叉樹轉換為樹和樹林的方法

傳送門二叉樹轉換為樹和樹林的方法:如果y是x的父親,且x是y的左子,則把x的右子,x右子的右子…和y相連;去除父親和右子之間的連線;樹轉換為二叉樹:串連所有的兄弟節點;對於每一個父親節點,只保留其和其長子之間的連線;某二叉樹結點的對稱序序列為A、B、C、D、E、F、G,後序序列為B、D、C、A、F、G、E。該二叉樹結點的前序序列為 (2)1. E、G、F、A、C、D、B2. E、A、C、B、D、G、F    G是右子樹3. E、A、G、C、F、B、D4.

cookie 科普 以及 探索

什麼是cookie某些網站為了辨別使用者身份而儲存在使用者本地終端(Client

Why do my text files suddenly have an additional at the end of each line?

The reason for this is CVS committing DOS-style text files (i.e. with line endings) as UNIX-style text files (with line endings). There are many ways how this can happen, so first some general rules:You should only access a repository using CVSNT,

sphinx配置分析

type:資料來源類型資料來源類型。必須選項,無預設值。

Modern C++ Design 筆記 第十章 Visitor

從開始學習設計模式的時候,就有一個概念,visitor是一個雞肋模式.由於visitor模式對於類結構穩定性的要求非常高,所以其實自己感覺在現實生活中的運用很少.(在現實中一般總可以,或者總趨向於添加一個虛函數介面了事).當然visitor不止現在這個問題,另一個突出的問題就是循環相依性.這對於C++來說,或者說對於OO來說都是一個尷尬的問題,在<<C++ coding standard>>中也提及了"第22條 盡量減少定義性依賴。避免循環相依性 

BMP (Brew Mobile Platform) 新的Brew終於誕生了

在搞了一陣不是很成功的4.x和TrigML, uiOne以後。Brew社區終於出了個新東西,這個東西叫做BMP。 就是所謂的Brew Mobile Platform。具體的資訊在這裡有很多。如果你在Qualcomm有個帳號的話,很容易的就可以註冊成為BMP的開發人員。那這個BMP到底是什麼東西呢?我們下載了SDK一探究竟。這個SDK的版本是Brew MP 1.0 SDK Rev 2.2。這個SDK需要很多東西的支援,如果你是C/C++開發的話。你還需要不少東西:C/C++

作業系統的pv

  P,V原語是作業系統裡進程之間通訊用到的兩種操作,在我們研究進程間的互斥的時候經常會引入這個概念,將P,V操作方法與加鎖的方法相比較,來解決進程間的互斥問題。實際上,他的應用範圍很廣,他不但可以解決進程管理當中的互斥問題,而且我們還可以利用此方法解決進程同步與進程通訊的問題。  [一]P,V原語理論  闡述P,V原語的理論不得不提到的一個人便是赫赫有名的荷蘭科學家E.W.Dijkstra。如果你對這位科學家沒有什麼印象的話,提起解決圖論中最短路徑問題的Dijkstra演算法應當是我們再熟悉不

動態規劃 (Dynamic Programming) 之 矩陣鏈乘法(Matrix Chain Multiplication)

這個問題是動態規劃的基礎的問題,也是演算法導論中討論過的問題。在這裡先簡單描述一下。假定有一組矩陣需要做乘法操作。但是我們知道首先矩陣乘法滿足了結合律。所以可以按照不同的順序做乘法。而且不同順序做乘法最後的乘法次數是不同的。比如〈A1, A2, A3〉分別是10 × 100, 100 × 5, 和 5× 50。如果按照((A1A2) A3)的順序來計算,就是7500次,但是如果(A1

Binary Index Tree And Segment Tree for PKU #3378 Crazy Thairs

Crazy ThairsTime Limit: 3000MSMemory Limit: 65536KTotal Submissions: 3111Accepted: 699DescriptionThese days, Sempr is crazed on one problem named Crazy Thair. Given N (1 ≤ N ≤ 50000) numbers, which  are no more than 109, Crazy Thair is a group of 5

Modern C++ Design 筆記 第八章 Object Factories

在前面一章的描述中說實話有點淺嘗輒止,淡淡的扯了前面幾節就黔驢技窮了,當然也不想再狗尾續貂了,所以很高興開始了新的一章的征程 Object Factories。說起這章,我們得先說說Factory模式, 這個模式的起源在於我們有太多的類似ConcreteClass* p = new ConcreteClass 的申明,而這些靜態申請在這裡限定了p的類型,

thrift自動產生原始碼剖析

thrift的優勢在於強大的跨語言能力,雖然是機器人的代碼,但是一點都不肉雞。。。學習一下吧。本文針對C++進行分析。設定thrift的設定檔,這裡做一個簡單的例子:struct Person{//data definition 1:i64 id; 2:string name;}service PersonService{//interface list<Person>

Camera: Brew中的龍潭虎穴

Camera慢慢的成為手機的標配之一的時候給手機編程帶來的麻煩也越來越大.尤其是能有一段通用的代碼在各種不同螢幕尺寸手機上順利運行更是非常困難。這次就談談Brew平台的Camera編程. 這次只講Preview和Snapshot模式.Movie我們暫且不談。和很多Brew介面很類似 Camera介面需要createinstance, 然後SetProperties(包括Size, Preview Size等等)當然很重要的就是要設定一個Callback

Symbian 位元影像CFbsBitmap 90度旋轉

在做Symbian Camera應用的時候,我們發現, 在某些特殊的手機上. Preview以後拿到的那些Frame也就是位元影像CFbsBitmap是旋轉過的. 比方說N75上, 比方說我在N96的一個原型機上也看到. 碰到這種情況. 我們只能手動的進行旋轉. 旋轉完成後再畫就基本上可以了. 但是旋轉有很多種, 如何旋轉呢?從Symbian OS v7.0開始就有了CBitmapRotator這樣一個類專門來做這個事情. 函數的原型很簡單:IMPORT_C void

一種快速自適應的映像二值化方法介紹 (Wellner 1993)

在手機模式識別的時候, 我們首先viewfinder裡面拿到的frame通常是RGB的或者YUV的, 如果我們需要用來做模式識別的話, 通常需要首先把彩色圖首先轉化成灰階圖. 對於RGB映像而言, 網上有充足的公式, 比如Y = 0.299R + 0.587G + 0.114B 等等. 如果是YUV的話, 直接用Y就是灰階圖了. 順帶說一句, 這種灰階圖通常我們用.raw檔案來表示, 用photoshop或者irfanview是可以直接開啟看效果的.

貪心演算法(Greedy Algorithm)之作用選取範圍問題(Activity-Selection Problem)

作用選取範圍問題是《演算法導論》裡面關於貪心演算法的第一個問題。這個問題是這樣的。我們有一組活動,每個活動都有一個開始時間Si和結束時間Fi。如:每個活動都共用同一個公用的資源(比如教室等)所以同一時間只能有一個活動。現在的問題就是要在指定的時間內讓舉辦的活動數量做大。這個問題是貪心演算法一個典型的應用。說到貪心,貪心基本問題的解決方案就是 #1.儘可能在局部找到一個最優的解

jquery事件與對象

普通事件滑鼠事件:.click().dbclick().mousedown();.mouseup();.mouseover();.mouseout();.mousemove();文檔與視窗事件:.load();.resize();.scroll();.unload();表單事件:.submit();.reset();.change().focus();.blur();這裡要注意,關於載入請用$(document).ready()代替window.onload;------------------

實現單鏈表的對稱判定演算法

在Y公司的筆試題中遇見了這樣一個題目:一個單鏈表,如何使用O(1)的空間複雜度判定其是否為對稱鏈表,例如A->B->C->T->C->B->A就是一個對稱鏈表。首先最自然的就能想到N^2的演算法:尋找1號和最後一個是否相同,再尋找2號和倒數第二個。。。尋找i和N-i是否相同。但是這個演算法明顯不是最優解答。對鏈表的分析之後可以看出,如果找到中間節點,從中間節點斷開鏈表,反向鏈表後部的部分,再一起遍曆兩個鏈表,這樣的演算法的時間複雜度一定是N,而反向鏈表所需要的

如何不用庫函數實現根號的求值

今天和朋友聊面經,說到一道題目,如何不用庫函數求根號,並且能用函數的輸入參數來控制誤差,他想了一個比較牛逼的方法,小數轉整數,然後二分尋找。在那麼短的時間想到這個地步真是不錯,但是我貌似記得科學計算的課上說過類似的東西,用泰勒計算:其實想到了這個其他的都比較簡單了,貼一下代碼:#include <iostream>#include <cmath>using namespace std;#define _DEBUG//(1+x)^t = 1+ t*x + t*(t-1)/(

ubuntu安裝全流程

最近一直在折騰這個系統,一開始是wubi安裝,後來用用覺得不錯,把windows刪除了。但是wubi安裝並不能發揮其最大作用,然後做了硬碟搬家,但是又碰見了多餘硬碟空間使用麻煩的問題,一氣之下直接把硬碟格掉全部重裝。 現在留個文檔,以供以後再次重裝時查閱。 1.     製作隨身碟啟動盤:下載ubuntu的鏡像,在系統->系統管理->建立啟動盤中可以進行製作,該過程比較簡單。 2.    

總頁數: 61357 1 .... 18211 18212 18213 18214 18215 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.