好.这是我的代码:
CShop::~CShop()
{
TPacketGCShop pack;
pack.header = HEADER_GC_SHOP;
pack.subheader = SHOP_SUBHEADER_GC_END;
pack.size = sizeof(TPacketGCShop);
Broadcast(&pack, sizeof(pack));
GuestMapType::iterator it;
it = m_map_guest.begin();
while (it != m_map_guest.end())
{
LPCHARACTER ch = it->first;
ch->SetShop(NULL);
++it;
}
M2_DELETE(m_pGrid);
}
Run Code Online (Sandbox Code Playgroud)
所以我有GuestMapType::iterator it;和这个it = m_map_guest.begin();
如果我像这样做我的功能,那很好吗?
CShop::~CShop()
{
TPacketGCShop pack;
pack.header = HEADER_GC_SHOP;
pack.subheader = SHOP_SUBHEADER_GC_END;
pack.size = sizeof(TPacketGCShop);
Broadcast(&pack, sizeof(pack));
auto it = m_map_guest.begin();
while (it != m_map_guest.end())
{
LPCHARACTER ch = it->first;
ch->SetShop(NULL);
++it;
}
M2_DELETE(m_pGrid);
}
Run Code Online (Sandbox Code Playgroud)
我删除了GuestMapType :: iterator; 简化我的代码?我的问题是.影响我的程序?有风险吗?
auto从我的观点来看,这完全没问题并且声明迭代器是一个很好的做法,至少有两个原因:
1-通常,迭代器的类型很长.输入的次数越少,误输的次数就越少.它使代码更清晰,因为在这种情况下隐藏了一个并不重要的实现细节.
2- 向前兼容性:当您修改代码时,即迭代器类型名称的名称时,您不必更改使用它的代码auto.毕竟,您希望独立于其名称使用该类型的迭代器.
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |