2013-04-09 48 views
1

拓扑帮助程序Ipv4AddressHelper允许设置基地址,如示例中所示。将字符串传递到ns3 :: Ipv4AddressHelper :: SetBase方法

Ipv4AddressHelper address; 
address.SetBase ("10.1.1.0", "255.255.255.0"); 

我想存储动态创建的任意数量的地址,例如。

... 
    for(uint32_t subnetC = 0; subnetC < nSubnets; subnetC++) 
    {  
    string ip = "10.1." + lexical_cast<string>(subnetC + 1) +".0"; 
    ipList.push_back(ip); 
    } 
    ... 
    vIpv4AddressHelper[ someIndex ].SetBase(ipList[ someIndex ], "255.255.255.0"); 
    ... 

但是,我得到的错误

error: no matching function for call to ‘ns3::Ipv4AddressHelper::SetBase(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const char [14])’ 
note: candidates are: void ns3::Ipv4AddressHelper::SetBase(ns3::Ipv4Address, ns3::Ipv4Mask, ns3::Ipv4Address) 

如何传递一个字符串SetBase

回答

2

编译器告诉你候选者需要2个参数(第三个是可选的,另请参阅doc for Ipv4AdressHelper)。所以通过这些参数。 在docs中,您可以看到Ipv4Adress可以使用char const*构建。因此,尝试:

address.SetBase (ns3::Ipv4Adress(adress_string.c_str()), ns3::Ipv4Mask(mask_string.c_str())); 

相应地改变adress_stringmask_string您的需求。

+0

谢谢Andri C.S.!很棒! : - )以方法名称“Ipv4Address”替代IpV4Adress和Ipv4Mask代替IpV4Mask – 2013-04-09 10:33:11

+1

不用客气!并感谢您的更正,我会立即改变这个帖子! – 2013-04-09 10:34:03