C++ for_each 在类中如何使用?

C++ for_each 在类中如何使用?,第1张

真要改的话会比较麻烦,倒不如直接用标准库的函数……

for_each(++begin(),end(),std::bind(std::mem_fn(&slist<T>::out),*this)

头文件是<functional>

另一种方式是用lambda,写成

for_each(++begin(),end(),[&]{out()}

两种方法都需要编译器支持c++11

MFC:

---------------在StdAfx.h中加入---------------------

#include <winsock2.h>    //套接字编程需要的头文件

#pragma  comment(lib,"ws2_32.lib") //套接字编程需要的库文件

---------------在要用的地方---------------------

 WSADATA wsadata

 if(0 != WSAStartup(MAKEWORD(2, 2), &wsadata))   //初始化

 {

  AfxMessageBox("初始化网络环境失败!")

  return TRUE

 }

 char szHostName[MAX_PATH + 1]

 gethostname(szHostName, MAX_PATH)  //得到计算机名

 hostent *p = gethostbyname(szHostName) //从计算机名得到主机信息

 if(p == NULL)

 {

  AfxMessageBox("得到本机网络信息失败!")

  return TRUE

 }

 m_strName = szHostName       //保存主机名

 int nCount = 0                 //保存主机地址

 char *pIP = inet_ntoa(*(in_addr *)p->h_addr_list[0])//将32位IP转化为字符串IP

 m_strAddr = pIP             //保存主机IP地址

    UpdateData(FALSE)          //显示各个数据

 WSACleanup()               //释放Winsock API

QT:

QString Widget::getIP()  //获取ip地址  

{  

    QList<QHostAddress> list = QNetworkInterface::allAddresses()  

    foreach (QHostAddress address, list)  

    {  

       if(address.protocol() == QAbstractSocket::IPv4Protocol)  

//我们使用IPv4地址  

            return address.toString()  

    }  

       return 0  

}  

或者

QString localHostName = QHostInfo::localHostName()  

  

qDebug() <<"localHostName:"<<localHostName  

QHostInfo info = QHostInfo::fromName(localHostName)    

foreach(QHostAddress address,info.addresses())    

{  

    if(address.protocol() == QAbstractSocket::IPv4Protocol)              

        qDebug() <<"IPV4 Address: "<< address.toString()    

}

另外,如果是windows系统:

可以参考:http://blog.csdn.net/q277055799/article/details/8301581


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11875826.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存