for (const auto & rRec : m_map_handshake)
{
if (rRec.second->GetHostName() == inet_ntoa(c_rSockAddr.sin_addr))
{
return true;
}
}
我有这样的代码,但基于范围的 for 循环不适用于旧的 gcc 编译器。
有什么办法可以解决这个问题吗?我不是C++方面的专家
您可以使用普通的for
循环。看起来很std::map
.使用迭代器遍历元素并匹配条件。
for(const <map-type>::iterator it = m_map_handshake.begin(); it != m_map_handshake.end();++it){
if (it->second->GetHostName() == inet_ntoa(c_rSockAddr.sin_addr))
{
return true;
}
}
这里<map-type>
将是m_map_handshake
的类型。