📄 rsmbmusicaplibset.inl
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
// FileName:
// RSmbMusicAPLibSet.inl
//
// Description:
// PTX810 Music傾僾儕 儈儏乕僕僢僋嫟捠儔僀僽儔儕
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+---------------+--------------------------------------
//2006/09/23 |SEMC崃绮 |僼傽僀儖僔僗僥儉嫟捠儔僀僽儔儕偐傜愗傝弌偟
/**
* $Revision: 1.2 $ $Date: 2006/04/05 17:21:27 $
*/
SEMCJ_NAMESPACE_BEGIN
MUSICAPLIB_NAMESPACE_BEGIN
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::RSmbMusicAPLibSet()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline RSmbMusicAPLibSet<K, C, DP>::RSmbMusicAPLibSet( const key_compare& aCmp/*=key_compare()*/ )
: iCmp( aCmp )
, iVec()
{
// nothing to do.
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::RSmbMusicAPLibSet()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline RSmbMusicAPLibSet<K, C, DP>::RSmbMusicAPLibSet( const RSmbMusicAPLibSet& aRhs )
: iCmp( aRhs.iCmp )
, iVec( aRhs.iVec )
{
// nothing to do.
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::RSmbMusicAPLibSet()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
template<typename InputIterator>
inline RSmbMusicAPLibSet<K, C, DP>::RSmbMusicAPLibSet( InputIterator aFirst, InputIterator aLast, const key_compare& aCmp/*=key_compare()*/ )
: iCmp( aCmp )
, iVec()
{
TRAPD( err, InsertL(aFirst, aLast) );
if (err)
{
// 僆僽僕僃僋僩抋惗枹枮側偺偱丄棙梡幰懁偱偺leave TRAP 偼晄壜擻丅儕乕僋懳嶔屻偵嵞throw丅
Release();
User::Leave( err );
}
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::~RSmbMusicAPLibSet()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline RSmbMusicAPLibSet<K, C, DP>::~RSmbMusicAPLibSet()
{
Release();
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::operator=()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline RSmbMusicAPLibSet<K, C, DP>& RSmbMusicAPLibSet<K, C, DP>::operator=( const RSmbMusicAPLibSet& aRhs )
{
RSmbMusicAPLibSet( aRhs ).Swap( *this );
return *this;
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::Key_comp()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline typename RSmbMusicAPLibSet<K, C, DP>::key_compare RSmbMusicAPLibSet<K, C, DP>::Key_comp() const
{
return iCmp;
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::Value_comp()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline typename RSmbMusicAPLibSet<K, C, DP>::value_compare RSmbMusicAPLibSet<K, C, DP>::Value_comp() const
{
return iCmp;
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::Begin()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline typename RSmbMusicAPLibSet<K, C, DP>::iterator RSmbMusicAPLibSet<K, C, DP>::Begin() const
{
return iVec.Begin();
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::End()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline typename RSmbMusicAPLibSet<K, C, DP>::iterator RSmbMusicAPLibSet<K, C, DP>::End() const
{
return iVec.End();
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::RBegin()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline typename RSmbMusicAPLibSet<K, C, DP>::reverse_iterator RSmbMusicAPLibSet<K, C, DP>::RBegin() const
{
return iVec.RBegin();
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::REnd()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline typename RSmbMusicAPLibSet<K, C, DP>::reverse_iterator RSmbMusicAPLibSet<K, C, DP>::REnd() const
{
return iVec.REnd();
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::Empty()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline TBool RSmbMusicAPLibSet<K, C, DP>::Empty() const
{
return iVec.Empty();
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::Size()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline typename RSmbMusicAPLibSet<K, C, DP>::size_type RSmbMusicAPLibSet<K, C, DP>::Size() const
{
return iVec.Size();
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::Max_size()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline typename RSmbMusicAPLibSet<K, C, DP>::size_type RSmbMusicAPLibSet<K, C, DP>::Max_size() const
{
return iVec.Max_size();
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::Swap()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline void RSmbMusicAPLibSet<K, C, DP>::Swap( RSmbMusicAPLibSet& aRhs )
{
MUSICAPLIB_NAMESPACE::Swap( iCmp, aRhs.iCmp );
MUSICAPLIB_NAMESPACE::Swap( iVec, aRhs.iVec );
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::InsertL()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline TSmbMusicAPLibPair<typename RSmbMusicAPLibSet<K, C, DP>::iterator, TBool> RSmbMusicAPLibSet<K, C, DP>::InsertL( const value_type& aVal )
{
typename Vec::iterator i( const_cast<pointer>(this->Lower_bound(aVal).Base()) );
if (i == End() || iCmp( aVal, *i ))
{
i = iVec.InsertL( i, aVal );
return Make_pair( i, ETrue );
}
else
return Make_pair( i, EFalse );
}
// ----------------------------------------------------------------------------
// RSmbMusicAPLibSet::InsertL()
// ----------------------------------------------------------------------------
template<typename K, class C, class DP>
inline typename RSmbMusicAPLibSet<K, C, DP>::iterator RSmbMusicAPLibSet<K, C, DP>::InsertL( iterator aPos, const value_type& aVal )
{
if (aPos != End() &&
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -