2016-02-18 75 views
0

我試圖寫一個小banlist用的std ::矢量/的std ::地圖。但我不知道它如何工作尚未...c + +讓與的std ::向量或std一個banlist ::地圖

這裏是如何 「BanList」 是建立在Networking.h:

static std::vector<int, std::string>BanList; 
  • int是爲ID
  • 字符串目標IP

這是我Networking.cpp的片段(如果目標被添加到banlist)

if (boost::contains(dataPackage.data, needle1) && boost::contains(dataPackage.data, needle2)) 
{ 
     // All okay here - Let's jump over & let the thread handle the action 
} 
else 
{ 
    //e.g. BanList.addTarget(Auto-Incremented ID, TargetsIP); 
    break; 
} 

因此,在那裏//例如BanList.addTarget(int,string);它應該如何與std :: vector或std :: map一起工作?我如何創建一個完整的目標列表?獲得IP不是我的問題!問題是如何自動設置ID,然後將目標添加到列表中...現在已經感謝您的幫助。

回答

0

我不太清楚你的問題是在這裏。如果你想知道如何使用地圖,那麼你應該看到the online reference

你的具體情況,如果你使用的地圖:

static std::map<int, std::string> banList; 
banList[id] = ipAddress; 

我不知道你爲什麼要映射到整數的字符串禁止名單。但這是你如何做到的。

對於一個矢量,你不能有鍵/值對,除非你推一個std::pair對象。儘管如此,你幾乎總是會想要使用地圖。

要添加到載體,應用vec.push_back(item)

你幾乎可以找到所有這一切在網上引用。

+0

謝謝,我現在會讀它 – PeteDX

0

Carefuly閱讀std::vector的模板參數。 std::string不是int :)

有效的分配這將是更接近std::map<int, std::string>

std::vector<std::pair<int, std::string>> BanList; 

瞭解,其餘約從參考/你最喜歡的書std::vector/std::pairstd::map。這裏不值得解釋(而且沒有足夠的空間)。

如果TargetsIP類似於std::vector<std::string>,則需要遍歷它並在循環中將元素附加到BanList

+1

謝謝! :-)這對我有幫助^ -^ – PeteDX

相關問題