📄 rsmbmusicaplibset.h
字号:
* 尒偮偐傜側偗傟偽 End() const 傪曉偡丅
*/
iterator Lower_bound( const key_type& aVal ) const;
/**
* 巜掕抣傪墇偊傞嵟弶偺梫慺傪巜偡斀暅巕傪曉偡丅
*
* @param[in] aVal 懳徾梫慺丅
* @return 抣偑 @a aVal 傪墇偊傞嵟弶偺梫慺傪億僀儞僩偡傞斀暅巕丅
* 尒偮偐傜側偗傟偽 End() const 傪曉偡丅
*/
iterator Upper_bound( const key_type& aVal ) const;
/**
* 巜掕抣偲堦抳偡傞愭摢丒枛旜梫慺傪巜偡斀暅巕傪曉偡丅
*
* @param[in] aVal 懳徾梫慺丅
* @return 儁傾 (Lower_bound(aVal) const, Upper_bound(aVal) const) 傪曉偡丅
*/
TSmbMusicAPLibPair<iterator, iterator> Equal_range( const key_type& aVal ) const;
/**
* 僐僺乕僆僽僕僃僋僩傪惗惉偟偰曉偡丅
*
* 杮僆僽僕僃僋僩偲摨堦偺抣傪帩偮丄怴偨側 heap object 傪惗惉(new)偟偰曉偡丅
*
* @return 摨堦抣傪帩偮暋惢僆僽僕僃僋僩丅
* @attention 曉媝抣偼惗惉偝傟偨 heap object 偱偁傝丄強桳尃(攋婞愑擟)偼 caller 傊堏揮偡傞丅
* @attention std::set<Key, Compare> 旕屳姺偺僆儕僕僫儖偱偁傞丅
*/
RSmbMusicAPLibSet* CloneLC() const;
/**
* 慡儕僜乕僗偺攋婞丅
*
* CleanupReleasePushL(T&) 偺揔梡傪壜擻偵偡傞偨傔愝偗偨傕偺丅<br>
* 慡儕僜乕僗(摦揑儊儌儕)傪攋婞偟丄僨僼僅儖僩僐儞僗僩儔僋僞捈屻偲摨偠忬懺偵偡傞丅
*
* @attention 儕僜乕僗奐曻傪敽傢側偄 std::set<Key, Compare> 屳姺偺梫慺嶍彍API偲偼丄堄枴丒寢壥偑堎側傞偙偲偵棷堄丅
* @attention std::set<Key, Compare> 旕屳姺偺僆儕僕僫儖偱偁傞丅
*/
void Release();
/**
* 斾妑墘嶼巕丅
*
* @param[in] aRhs 塃曈抣丅
* @return RSmbMusicAPLibVector::operator==()
*/
TBool operator==( const RSmbMusicAPLibSet& aRhs ) const;
/**
* 斾妑墘嶼巕丅
*
* @param[in] aRhs 塃曈抣丅
* @return !(*this == aRhs)
*/
TBool operator!=( const RSmbMusicAPLibSet& aRhs ) const;
/**
* 斾妑墘嶼巕丅
*
* @param[in] aRhs 塃曈抣丅
* @return RSmbMusicAPLibVector::operator<()
*/
TBool operator<( const RSmbMusicAPLibSet& aRhs ) const;
/**
* 斾妑墘嶼巕丅
*
* @param[in] aRhs 塃曈抣丅
* @return aRhs < *this
*/
TBool operator>( const RSmbMusicAPLibSet& aRhs ) const;
/**
* 斾妑墘嶼巕丅
*
* @param[in] aRhs 塃曈抣丅
* @return !(aRhs < *this)
*/
TBool operator<=( const RSmbMusicAPLibSet& aRhs ) const;
/**
* 斾妑墘嶼巕丅
*
* @param[in] aRhs 塃曈抣丅
* @return !(*this < aRhs)
*/
TBool operator>=( const RSmbMusicAPLibSet& aRhs ) const;
private:
key_compare iCmp; /**< 儐僯乕僋僉乕偺摍壙斾妑墘嶼丅 */
Vec iVec; /**< 僐儞僥僫偺惓懱偱偁傞摦揑攝楍丅 */
}; // end of class RSmbMusicAPLibSet
/** @relates RSmbMusicAPLibSet
* 楢憐婰壇僐儞僥僫偺岎姺丅
*
* @param[out] aLhs 嵍曈抣丅
* @param[out] aRhs 塃曈抣丅
* @see RSmbMusicAPLibSet::Swap()
*/
template<typename K, class C, class DP>
void Swap( RSmbMusicAPLibSet<K, C, DP>& aLhs, const RSmbMusicAPLibSet<K, C, DP>& aRhs );
MUSICAPLIB_NAMESPACE_END
SEMCJ_NAMESPACE_END
#include "RSmbMusicAPLibSet.inl"
/** @page Usage_RSmbMusicAPLibSet 堦堄僉乕廤崌楢憐僐儞僥僫 RSmbMusicAPLibSet 偺棙梡曽朄
* 堦堄僉乕廤崌楢憐僐儞僥僫 RSmbMusicAPLibSet 偺棙梡曽朄傪丄僒儞僾儖僐乕僪傪梡偄偰帵偡丅
*
* - 梊旛抦幆
* -# API愝寁偺儌僨儖偼STL(C++ Standard Template Library)偺 std::set 偱偁傞丅
* 偨偩偟丄儊僜僢僪柤偼 SymbianOS 偺僐乕僨傿儞僌婯懃丒姷椺偵崌傢偣偨傕偺偲偟偰偄傞(傾儖僼傽儀僢僩戝暥帤偱巒傔傞丄L convention 摍)丅
* -# SymbianOS 屌桳偺巇條丒惂栺偵崌傢偣偰丄婔偽偔偐偺撈帺婡擻傪晅壛偟偰偄傞丅
* - 儊儌儕儕乕僋懳嶔 - SymbianOS 摿桳偺 'leave 傊偺旛偊'
* - 杮僋儔僗偵尷偭偨偙偲偱偼側偄偑丄SymbianOS 偵偍偄偰偼丄摦揑儊儌儕儕僜乕僗(Heap)傪巊偆僆僽僕僃僋僩傪埖偆応崌丄
* 'leave 偵旛偊傞' 偺堄幆丒懳嶔僐乕僪偑昁恵偱偁傞丅偙傟偼丄C++昗弨巇條偺 exception 傪僒億乕僩奜偲偟丄
* 撈帺偺 CleanupStack + leave 偺儊僇僯僘儉傪嵦偭偨摨OS偱偼丄偄偨偟偐偨偺側偄偙偲丅
* -# 僀儞僗僞儞僗曄悢偲偟偰梡偄傞応崌丅
* @code
* class CFoo : public CBase
* {
* public:
* static CFoo* NewLC();
* void ConstructL();
* ~CFoo();
* void DoSomethingL();
* ...
* private:
* CFoo();
* ...
* private:
* typedef RSmbMusicAPLibSet<CBar*> TBarSet; // CBar傊偺娭楢[1..*]偺幚憰宆
* TBarSet iBars; // CBar傊偺娭楢[1..*]
* };
* ...
* CFoo* CFoo::NewLC()
* {
* CFoo* me = new(ELeave) CFoo();
* CleanupStack::PushL( me );
* me->ConstructL();
* return me;
* }
* CFoo::CFoo()
* : iBars() // 僨僼僅儖僩僐儞僗僩儔僋僞偼 leave 偟側偄丅
* {
* }
* void CFoo::ConstructL()
* {
* ... iBars 偺弶婜壔 ... // leave偑敪惗偟偆傞弶婜壔偼 2nd phase 僐儞僗僩儔僋僞偱丅
* }
* CFoo::~CFoo()
* {
* iBars.Release(); // R* 僋儔僗偺偍栺懇丅
* }
* void CFoo::DoSomethingL()
* {
* ... iBars 傪巊偭偰壗偐偡傞 ... // C* 僋儔僗偼僨僗僩儔僋僞傪偁偰偵偱偒傞偐傜丄iBars 偺屄乆偺売強偛偲偺摿壔儕乕僋懳嶔偼尨懃晄梫丅
* }
* @endcode
* -# 僗僞僢僋僆僽僕僃僋僩(auto曄悢)偲偟偰梡偄傞応崌丅
* @code
* void CFoo::DoSomethingL()
* {
* typedef RSmbMusicAPLibSet<CBar*> T; // CBar* 偺儐僯乕僋廤崌傪偙偙偱巊偄偨偄偺丅
* T bars; // 僨僼僅儖僩僐儞僗僩儔僋僞偼 leave 偟側偄丅
* CleanupReleasePushL( bars ); // leave敪惗偵旛偊傞丅
* ... bars 傪巊偭偰壗偐偡傞 ...
* CleanupStack::PopAndDestroy( &bars ); // T::Release() 偑屇傃弌偝傟傞丅
* }
* @endcode
* - 僒儞僾儖僐乕僪
* @code
* #include "RSmbMusicAPLibSet.h"
* USING_NAMESPACE_MM
*
* // C++ template 巊梡僐儞僥僫偺幚宆柤偼昁慠揑偵挿偨傜偟偔側傞丅
* // 僜乕僗僐乕僪偺壜撉惈丒曐庣惈傪岦忋偝偣傞偨傔偵偼丄typedef 傪梡偄偰丄儐僯乕僋僗僐乕僾撪偱揔愗偵娙堈側暿柤傪晅偗偰偍偔偲傛偄丅
* typedef RSmbMusicAPLibSet<TPtrC> T;
*
* #include <e32base.h> // for Console::NewL()
* #include <e32cons.h> // for class CConsoleBase
*
* LOCAL_D CConsoleBase* theConsole;
*
* LOCAL_D void Print( const T& aContainer, const TDesC& aTitle=KNullDesC )
* {
* // aContainer 偺慡梫慺傪報帤偡傞丅
* // 仸STL僀僥儗乕僞峔暥傪梡偄偨揟宆椺偺僒儞僾儖傪寭偹傞丅
* if (aTitle.Length() > 0)
* theConsole->Printf( _L("%S"), &aTitle );
* theConsole->Printf( _L("[") );
* T::const_iterator end = aContainer.End();
* for (T::const_iterator i = aContainer.Begin(); i != end; ++i)
* theConsole->Printf( _L(" \"%S\""), &(*i) );
* theConsole->Printf( _L(" ]\n") );
* }
*
* LOCAL_D void DoSampleL()
* {
* // 暥帤楍(descriptor)偺儐僯乕僋廤崌傪嶌惉偡傞丅
* T s;
* CleanupReleasePushL( s );
*
* // 弶婜抣傪擖傟傞丅
* s.InsertL( _L("cat") );
* s.InsertL( _L("dog") );
* s.InsertL( _L("cow") );
* Print( s );
*
* // 撠偑懚嵼偡傞偐偳偆偐挷傋傞丅
* {
* T::const_iterator i = s.Find( _L("pig") );
* if (i == s.End())
* theConsole->Printf(_L("pig not found...\n") );
* else
* theConsole->Printf(_L("pig found!\n") );
* }
*
* // 暋悢偺摦暔傪堦搙偱憓擖偟偰傒傞丅
* const T::value_type v[] = {
* T::value_type( _L("cat") ), // 偍傗偍傗丄傕偆偄傞傫偩偗偳偹丅
* T::value_type( _L("pig") ),
* T::value_type( _L("dog") ) // 偍傗偍傗丄傕偆偄傞傫偩偗偳偹丅
* };
* s.InsertL( v, v+3 ); // 慻傒崬傒攝楍傕僀僥儗乕僞偲偟偰摟夁揑偵埖偊傞偺偑STL棳丅
* Print( s );
*
* // 撠偑懚嵼偡傞偐偳偆偐挷傋傞丅
* {
* if (s.Count(_L("pig"))) // Count() 偱挷傋偰傕偄偄丅
* theConsole->Printf(_L("pig found!\n") );
* else
* theConsole->Printf(_L("pig not found...\n") );
* }
*
* // 將傪嶍彍偡傞丅
* s.Erase( _L("dog") );
* Print( s );
*
* // 將偑懚嵼偡傞偐偳偆偐挷傋傞丅
* {
* if (s.Count(_L("dog")))
* theConsole->Printf(_L("dog found!\n") );
* else
* theConsole->Printf(_L("dog not found...\n") );
* }
*
* // 媿埲崀偺慡梫慺傪嶍彍偟偰傒傞丅
* s.Erase( s.Find(_L("cow")), s.End() );
*
* // s 偺摨抣僐僺乕偑傎偟偄応崌丅
* T* s2 = s.CloneLC(); // CleanupStack::PushL() 嵪傒偱曉偟偰偔傟傞丅
*
* // 慡梫慺傪嶍彍偟偨偄側傜偙傟丅
* s.Clear();
*
* // s, s2 偺撪梕傪報帤偟偰傒傞丅
* Print( s , _L("s = ") );
* Print( *s2, _L("s2 = ") );
*
* theConsole->Getch(); // 報帤撪梕偑栚帇妋擣偱偒傞傛偆偵丄擖椡懸偪偱偄偭偨傫掆巭丅
*
* // 巊偄廔傢偭偨傜儕僜乕僗攋婞丅
* // Release() 偺屇傃弌偟偼丄CleanupStack 偺堿偵塀傟偰偄傞偩偗丅
* CleanupStack::PopAndDestroy( s2 ); // 僗僞僢僋愭摢偼偙傟偺偼偢丅
* CleanupStack::PopAndDestroy( &s ); // 師偼偙傟偑愊傑傟偰偄傞偼偢丅
* }
*
* LOCAL_C void MyMainL()
* {
* theConsole = Console::NewL( _L("TSample"), TSize(KConsFullScreen, KConsFullScreen) );
* CleanupStack::PushL(theConsole);
* DoSampleL();
* CleanupStack::PopAndDestroy(); // theConsole
* theConsole = NULL;
* }
*
* GLDEF_C TInt E32Main()
* {
* __UHEAP_MARK;
* CTrapCleanup* cleanup = CTrapCleanup::New();
* TRAPD(error, MyMainL());
* __ASSERT_ALWAYS(!error, User::Panic( MYDLL_UID3, KErrArgument ));
* delete cleanup;
* __UHEAP_MARKEND;
* return(KErrNone);
* }
* @endcode
* - 僒儞僾儖僐乕僪偺幚峴寢壥
* @code
* [ "cat" "cow" "dog" ]
* pig not found...
* [ "cat" "cow" "dog" "pig" ]
* pig found!
* [ "cat" "cow" "pig" ]
* dog not found...
* s = [ ]
* s2 = [ "cat" ]
* @endcode
*/
#endif // __RSMBMUSICAPLIB_SET_H__
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -