nightwishbaby 2015-06-02 06:31 采纳率: 66.7%
浏览 3634
已结题

QT Qmap 在一个函数中定义,怎么在另一个函数中遍历

void address_pool::set_address_pool(QString get_IP)
{
QString ip;
ip= get_IP;
qDebug()<<"IP"<<ip;
QStringList str=ip.split(",");
QStringList strlist= str.at(0).split(".");
// qDebug()<<strlist.at(0);
// qDebug()<<strlist.count();
bool m;
int number=str.at(2).toInt(&m,10);
// qDebug()<<number;
QString start;
int start_end;
QString IP;
start=strlist.at(0)+"."+strlist.at(1)+"."+strlist.at(2)+".";
// qDebug()<<"start"<<start;
bool ok;
start_end=strlist.at(strlist.count()-1).toInt(&ok,10);
for(int i=0;i<number;i++)//主要看这,在这插入
{
start_end+=i;
IP=start+QString::number(start_end);
pool.insert(i,IP);
qDebug()<<IP;

    IP="";
    start_end=strlist.at(strlist.count()-1).toInt(&ok,10);
 }

}

void address_pool::provide_IP(QByteArray reciver)
{
QByteArray send=reciver;
qDebug()<<"receiver_requst"< qDebug() for(p=pool.begin();p!=pool.end();p++)//为什么在这pool.size的值为0
{
qDebug() if(p.value()!="")
{
send.append(p.key());
if(send.size() {
for(int i=send.size();i {
send.append('\0');
}
}
send.append(p.value());//提供IP地址
if(send.size() {
for(int i=send.size();i {
send.append('\0');
}
}
send.append(ser_ip);//提供server IP地址
if(send.size() {
for(int i=send.size();i {
send.append('\0');
}
}
// send_IP_ID=p.key();
// send_IP_address=p.value();
p.value()="";
emit send_IP(send);
qDebug() break;
}
}
}
在头文件里定义的私有变量是
QMap pool;
QMap::iterator p;

    是不是因为局部变量的原因,还是pool被释放了,求大神指导
  • 写回答

3条回答 默认 最新

  • oyljerry 2015-06-02 06:38
    关注

    另一个函数中传递Qmap 这个变量过去。然后函数内部再遍历map

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!