2011-05-04 92 views
-1

我在Visual C++應用程序這是什麼意思在C++

遇到這個
extern map<string, rpcfn_type> mapCallTable; 

map<string, string> 

是什麼意思?沒有地圖的事情,但

<string, string> 

部分

+0

那麼很難看到這些部分分開。請參閱http://www.cplusplus.com/reference/stl/map/或者更好的http://www.uow.edu.au/~nabg/ABC/ABC.html – sehe 2011-05-04 20:27:43

+0

它們是模板參數,它的映射字符串轉換爲字符串或字符串轉換爲第一個示例中的rpcfn_type – forsvarir 2011-05-04 20:27:58

+0

在編寫任何更多的Visual C++應用程序之前,您可能需要[閱讀一本好書](http://stackoverflow.com/questions/388242/the -definitive-C-書指南和列表)。 – 2011-05-04 20:30:57

回答

10

這些都是模板參數; map是一個類模板,只有在告訴它將使用的類型之後它纔會完成。第一種是鍵的類型,第二種是將通過鍵存儲的數據的類型。

+0

+1只有幾句話才能說明問題:) – ralphtheninja 2011-05-04 20:30:03

0

您不能單獨使用<string, string>零件,因爲它是map的修飾符。

map是模板類型,並且<string, string>引用它使用的類型。 map<string, string>表示map,其關鍵類型爲string,其值類型也爲string

1

std::map是一個模板。您可以使用它創建一個具有密鑰和與該密鑰相關的一些數據的類型。尖括號是指定這兩種類型的位置,所以(例如),map<string, string>定義了一種類型,它使用一個字符串作爲關鍵字,並且具有與第一個字符串關聯的另一個字符串。

一個這也許更容易理解會是這樣的:

struct person {   
    string name; 
    string email_address; 
    phone_number home; 
    phone_number mobile; 
}; 

map<string, person> people; 

這讓我(例如)使用暱稱爲重點,以查找姓名,電子郵件地址,電話號碼等的人。