2016-02-18 114 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

相关问题