本文整理汇总了C++中ChannelList::erase方法的典型用法代码示例。如果您正苦于以下问题:C++ ChannelList::erase方法的具体用法?C++ ChannelList::erase怎么用?C++ ChannelList::erase使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ChannelList
的用法示例。
在下文中一共展示了ChannelList::erase方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: moveService
void CBouquet::moveService(const unsigned int oldPosition, const unsigned int newPosition, const unsigned char serviceType)
{
ChannelList* channels = &tvChannels;
switch (serviceType)
{
case ST_DIGITAL_TELEVISION_SERVICE:
case ST_NVOD_REFERENCE_SERVICE:
case ST_NVOD_TIME_SHIFTED_SERVICE:
channels = &tvChannels;
break;
case ST_DIGITAL_RADIO_SOUND_SERVICE:
channels = &radioChannels;
break;
}
if ((oldPosition < channels->size()) && (newPosition < channels->size()))
{
ChannelList::iterator it = channels->begin();
advance(it, oldPosition);
CZapitChannel* tmp = *it;
channels->erase(it);
it = channels->begin();
advance(it, newPosition);
channels->insert(it, tmp);
}
}
示例2: RemoveChannel
void ChannelMgr::RemoveChannel(Channel * chn)
{
ChannelList::iterator itr;
ChannelList * cl = &Channels[chn->m_team];
DBCChannelMap::iterator itr2;
DBCChannelMap *dbcchannel = &DBCChannels[chn->m_team];
lock.Acquire();
m_idToChannel.erase(chn->m_channelId);
for(itr = cl->begin(); itr != cl->end(); itr++)
{
if(itr->second == chn)
{
cl->erase(itr);
chn->m_lock.Release();
delete chn;
lock.Release();
return;
}
}
for(itr2 = dbcchannel->begin(); itr2 != dbcchannel->end(); itr2++)
{
if(itr2->second.second == chn)
{
dbcchannel->erase(itr2);
chn->m_lock.Release();
delete chn;
lock.Release();
return;
}
}
lock.Release();
}
示例3: RemoveChannel
void ChannelMgr::RemoveChannel(Channel * chn)
{
ChannelList::iterator itr;
ChannelList * cl = &Channels[0];
if(seperatechannels)
cl = &Channels[chn->m_team];
lock.Acquire();
for(itr = cl->begin(); itr != cl->end(); ++itr)
{
if(itr->second == chn)
{
cl->erase(itr);
delete chn;
lock.Release();
return;
}
}
lock.Release();
}