您的位置:首页 > 编程语言 > C语言/C++

c++中使用std::map是遇到的小问题

2016-12-08 11:46 281 查看
std::map<int,bool> m_enermyNameState;
for (auto name:NetName::s_netNamesVec)  //s_netNamesVec是一个字符窜vector
{
EnermyNameState nameState = std::make_pair(name->getName(), false);
m_enermyNameState.push_back(nameState);
}
//如果想要改变其中的值,需要用迭代器
std::vector<EnermyNameState>::iterator itor = m_enermyNameState.begin();
while (itor != m_enermyNameState.end())
{
if (strcmp(itor->first.c_str(),pEnermy->getName().c_str()) == 0)//pEnemy是一个实体
{
itor->second = false;
break;
}
itor++;
}
//不用迭代器只用一个遍历不会改变其中的数值
for(auto itor:m_enermyNameState)//这里改为auto &itor:m_enemyNameState即可改变
{
if(strcmp(itor.first.c_str(),pEnermy->getName().c_str()) == 0)
{
itor.second = false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++