sharpdevelop的作者們在實現有關sharpdevelop文字表示時,比較了3中文字的儲存方法:
1.陣列---很明顯這種方法雖可以通過下標快速獲取到想要的字元,但在插入和刪除時其表現實在不過去,而我們寫程式不可能一次性把程式寫好,而是需要很多次的修改或是在文字中間進行編輯的。
2.鍊錶---這種結構在插入或是刪除時都可以很方便的實現,如在插入時只需為新文字在編輯緩衝區中指定乙個新快,然後鏈結上即可,但此方法對記憶體的要求要高些;另外頻繁的插入和刪除將導致緩衝區越來越片段化,也將導致效能的下降;還有就是這種方法不能通過下標來快速訪問。
3.間隙緩衝區---即在整個編輯緩衝區中開闢一塊間隙,這是一種介於陣列和鍊錶之間的有效方法,間隙的大小由程式設計師根據經驗來設定。
間隙是跟在編輯插入符的後面的,所以當插入符的位置改變時,間隙也會跟著移動,以確保在插入時總是插入在間隙中 。
現在要在without後面新增字元your,則只需用your替換****即可,而不需要移動陣列內容,只有在要插入的字串的長度超過了剩餘的間隙的長度時才需要擴充間隙,從而移動緩衝區陣列;同理在刪除時當間隙的長度超過了最初設定的最大長度時就需要縮減間隙的長度。
這種方法其實就是減少了移動陣列的次數,從而達到效能的提公升的。
sharpdevelop中實現間隙緩衝區的**主要如下:
mysql間隙鎖 mysql間隙鎖
前面一文 mysql鎖 介紹了mysql innodb儲存引擎的各種鎖,本文介紹一下innodb儲存引擎的間隙鎖,就以下問題展開討論 1.什麼是間隙鎖?間隙鎖是怎樣產生的?2.間隙鎖有什麼作用?3.使用間隙鎖有什麼隱患?一 間隙鎖的基本概念 1.什麼叫間隙鎖 當我們用範圍條件而不是相等條件檢索資料,...
在U盤上執行SharpDevelop
能夠在u盤上執行sharpdevelop已經有好一段時間。而在3.0版中的乙個新功能是,通常儲存在使用者配置目錄 註解 也就是xp上的documents and settings,vista上的users 的配置可以直接儲存在u盤上 這樣你就能夠一直帶著你的設定了。xml 注釋1 使用這個配置設定來...
SharpDevelop2 2與Fxcop的整合
sharpdevelop2.2與fxcop的整合 陳能技 2008 1 7 sharpdevelop2.2可以呼叫fxcop進行 分析。首先需要安裝fxcop,如果已經裝了vs.net 2005,則可在vs.net 2005的安裝目錄找到fxcop,例如 c program files micros...