原创 Effective STL 第2、3、4條

第2條:不要試圖編寫獨立於容器類型的代碼 第3條:確保容器中的對象副本正確而高效        容器中保存了對象,但並不是你提供給容器的那些對象。而當從容器中取出個對象時,你所取出的也並不是容器中所保存的那份。當向容器中加入對象時(通過i

原创 Effective STL 第1條:慎重選擇容器類型

C++提供了幾種不同的容器供我們選擇,這裏簡單回顧一下: 1、標準STL序列容器:vector、string、deque和list。 2、標準STL關聯容器:set、multiset、map、和multimap。 3、非標準序列容器sli

原创 Effective STL 第12條:切勿對STL容器的線程安全性有不切實際的依賴

在多線程中,對一個STL實現,我們最多隻能期望: 1、多個線程讀是安全的。多個線程可以同時讀同一個容器的內容,並且保證是正確的。自然的,在讀的過程中,不能對容器有任何寫入操作。 2、多個線程對不同的容器做寫入操作是安全的。多個線程可以同時

原创 Effective STL 第7條:如果容器中包含了通過new操作創建的指針,切記在容器對象析構前將指針delete掉

STL中的容器相當“聰明”,它們提供了迭代器,以便進行向後和向前的遍歷(通過begin、end、rbegin等);它們告訴你所包含的元素類型(通過它們的value_type類型定義);在插入和刪除的過程中,它們自己進行必要的內存管理;它們

原创 Linux常用網絡命令(二)

nslookup 作用 nslookup命令的功能是查詢一臺機器的IP地址和其對應的域名。 使用權限所有用戶。它通常需要一臺域名服務器來提供域名服務。如果用戶已經設置好域名服務器,就可以用這個命令查看不同主機的IP地址對應的

原创 Hadoop-2.4.0安裝和wordcount運行驗證

Hadoop-2.4.0安裝和wordcount運行驗證 以下描述了64位centos6.5機器下,安裝32位hadoop-2.4.0,並通過運行 系統自帶的WordCount例子來驗證服務正確性的步驟。 建立目錄 /home/Qi

原创 多段圖最短路徑

問題描述:設是一個賦權有向圖,其頂點集V被劃分爲個不相交的子集,其中,V1和Vk分別只有一個頂點s(稱爲源)和一個頂點t(稱爲匯),所有的邊(u,v)的始點和終點都在相鄰的兩個子集Vi和Vi+1中:, 且邊(u,v)有一個正權重,記爲.

原创 動態規劃的求解步驟

動態規劃算法適合於求解最優化問題,通常可按下列步驟來設計動態規劃算法: (1)分析最優解的性質,並刻畫其最優子結構特徵; (2)確定狀態表示S(x1,x2,...)和狀態遞推方程,遞歸地定義最優值; (3)根據狀態轉移順序,以自底向

原创 Effective STL 第5條:區間成員函數優先於與之對應的單元素成員函數

使用區間成員函數而不是其相應的單元素成員函數的原因: l  通過使用區間成員函數,通常可以少寫一些代碼。 l  使用區間成員函數通常會得到意圖清晰和更加直接的代碼。 l  在一般情況下,效率更高。   區間操作有以下幾種: 區間創建。所有

原创 在hadoop-2.4.0環境下安裝mahout最新版

相對於快速安裝來說,編譯安裝可能要相對麻煩點,首先,編譯安裝需要我們確保系統中已經安裝了jdk1.6和maven3.0以上的版本才行。 具體安裝這裏不說了: [root@localhostQiumingLu]# mvn -versionA

原创 慎重選擇刪除元素的方法

總結本條款,一共有以下幾點是需要牢記的: 1、要刪除容器中有特定值的所有對象: (1)、如果容器是vector、string或deque,則使用erase-remove習慣用法。 (2)、如果容器是list,則使用list::remove

原创 Linux常用網絡命令(三)

rlogin 作用 rlogin是”remote login”(遠程登錄)的縮寫。該命令與telnet命令很相似,允許用戶啓動遠程系統上的交互命令會話。rlogin的一般格式是: rlogin [-8EKLdx][-e ch

原创 POSIX 線程小結

POSIX 在IEEE Std 1003.1c-1995 (也稱爲POSIX 1995 或 POSIX.1c) 對線程庫進行了標準化。開發人員稱之爲 POSIX線程,或簡稱爲 Pthreads。Pthreads 是 UNIX 系統上 C

原创 線程模式

創建多線程應用的第一步也是最重要的一步就是確定線程模式,線程模式也是應用程序的邏輯處理和 I/O 的模式,可能存在很多抽象和實現細節,但兩個核心的編程模式是:"每個連接對應一個線程(thread-per-connection)" 和 "事

原创 I/O 多路複用之select

概述 Linux提供了三種 I/O 多路複用方案:select,poll和epoll。在這一篇博客裏先討論select, poll 在將下一篇中介紹,epoll是Linux特有的高級解決方案,將在接下來中介紹。 select() sele