rsmbmusicaplibmap.h

来自「索爱手机代码」· C头文件 代码 · 共 742 行 · 第 1/3 页

H
742 行
字号
     *  @return 憓擖偟偨梫慺傪億僀儞僩偡傞斀暅巕偲丄憓擖偑幚嵺偵峴傢傟偨偐斲偐傪帵偡恀婾抣丅
     */
    TSmbMusicAPLibPair<iterator, TBool> InsertL( const value_type& aVal );
    /**
     *  梫慺偺憓擖丅
     *
     *  摨堦僉乕偑懚嵼偟側偄応崌偵尷傝丄巜掕梫慺偺抣僐僺乕傪偙偺儅僢僾撪偵憓擖偡傞丅
     *
     *  @param[in]  aPos    憓擖埵抲偵娭偡傞僸儞僩丅
     *  @param[in]  aVal    懳徾梫慺丅
     *  @return 憓擖偟偨梫慺傪億僀儞僩偡傞斀暅巕丅
     */
    iterator InsertL( iterator aPos, const value_type& aVal );
    /**
     *  梫慺偺憓擖丅
     *
     *  斖埻 [@a aFirst, @a aLast) 偺梫慺偺抣僐僺乕傪偙偺儅僢僾偵憓擖偡傞丅
     *      - 巜掕斀暅巕偑 TSmbMusicAPLibPair<Key, T> 宆偺抣傪曉偟丄
     *      - 偦偺 key 抣偑儐僯乕僋偱偁傝丄偙偺儅僢僾撪偺婛懚梫慺偲廳暋偟側偄
     *
     *  応崌偺傒丄惉岟偑曐徹偝傟傞丅
     *
     *  @param[in]  aFirst  擖椡奐巒埵抲丅
     *  @param[in]  aLast   擖椡廔椆埵抲丅
     */
    template<typename InputIterator>
    void InsertL( InputIterator aFirst, InputIterator aLast );

    /**
     *  梫慺偺嶍彍丅
     *
     *  埵抲 @a aPos 偺梫慺傪嶍彍偡傞丅
     *
     *  @param[in]  aPos    懳徾埵抲丅
     */
    void Erase( iterator aPos );
    /**
     *  梫慺偺嶍彍丅
     *
     *  僉乕抣 @a aKey 傪帩偮梫慺傪嶍彍偡傞丅
     *
     *  @param[in]  aKey    懳徾僉乕丅
     *  @return 嶍彍偟偨梫慺悢丅
     *          廳暋僉乕傪嫋偝側偄儅僢僾偱偁傞偐傜 1 傑偨偼 0 偱偁傞丅
     */
    size_type Erase( const key_type& aKey );
    /**
     *  梫慺偺嶍彍丅
     *
     *  斖埻 [@a aFirst, @a aLast) 偺慡梫慺傪嶍彍偡傞丅
     *
     *  @param[in]  aFirst  嶍彍奐巒埵抲丅
     *  @param[in]  aLast   嶍彍廔椆埵抲丅
     */
    void Erase( iterator aFirst, iterator aLast );

    /**
     *  key_type 傪斾妑偡傞娭悢傪曉偡丅
     *
     *  @return 尰嵼偺儅僢僾偺斾妑墘嶼 key_compare 傪巊偄丄key_type 抣傪斾妑偡傞擻椡偑偁傞丄娭悢僆僽僕僃僋僩丅
     */
    key_compare Key_comp() const;
    /**
     *  value_type 傪斾妑偡傞娭悢傪曉偡丅
     *
     *  @return 尰嵼偺儅僢僾偺斾妑墘嶼 key_compare 傪巊偄丄 value_type 抣傪斾妑偡傞擻椡偑偁傞丄娭悢僆僽僕僃僋僩丅
     */
    value_compare Value_comp() const;

    /**
     *  梫慺偺扵嶕丅
     *
     *  僉乕抣 @a aKey 傪帩偮梫慺傪扵嶕偡傞丅
     *
     *  @param[in]  aKey    懳徾僉乕丅
     *  @return 尒偮偐偭偨梫慺傪億僀儞僩偡傞斀暅巕丅
     *          尒偮偐傜側偗傟偽 End() 傪曉偡丅
     */
    iterator Find( const key_type& aKey );
    /**
     *  梫慺偺扵嶕丅
     *
     *  僉乕抣 @a aKey 傪帩偮梫慺傪扵嶕偡傞丅
     *
     *  @param[in]  aKey    懳徾僉乕丅
     *  @return 尒偮偐偭偨梫慺傪億僀儞僩偡傞斀暅巕丅
     *          尒偮偐傜側偗傟偽 End() const 傪曉偡丅
     */
    const_iterator Find( const key_type& aKey ) const;
    /**
     *  僉乕抣偑堦抳偡傞梫慺偺悢傪曉偡丅
     *
     *  @param[in]  aKey    懳徾僉乕丅
     *  @return 僉乕抣 @a aKey 傪帩偮梫慺偺悢丅
     *          廳暋僉乕傪嫋偝側偄儅僢僾偱偁傞偐傜 1 傑偨偼 0 偱偁傞丅
     */
    size_type Count( const key_type& aKey ) const;
    /**
     *  僉乕偑摿掕抣埲忋偱偁傞嵟弶偺梫慺傪巜偡斀暅巕傪曉偡丅
     *
     *  @param[in]  aKey    懳徾僉乕丅
     *  @return 僉乕抣偑 @a aKey 埲忋偱偁傞嵟弶偺梫慺傪億僀儞僩偡傞斀暅巕丅
     *          尒偮偐傜側偗傟偽 End() 傪曉偡丅
     */
    iterator Lower_bound( const key_type& aKey );
    /**
     *  僉乕偑摿掕抣埲忋偱偁傞嵟弶偺梫慺傪巜偡斀暅巕傪曉偡丅
     *
     *  @param[in]  aKey    懳徾僉乕丅
     *  @return 僉乕抣偑 @a aKey 埲忋偱偁傞嵟弶偺梫慺傪億僀儞僩偡傞斀暅巕丅
     *          尒偮偐傜側偗傟偽 End() const 傪曉偡丅
     */
    const_iterator Lower_bound( const key_type& aKey ) const;
    /**
     *  僉乕偑摿掕抣傪墇偊傞嵟弶偺梫慺傪巜偡斀暅巕傪曉偡丅
     *
     *  @param[in]  aKey    懳徾僉乕丅
     *  @return 僉乕抣偑 @a aKey 傪墇偊傞嵟弶偺梫慺傪億僀儞僩偡傞斀暅巕丅
     *          尒偮偐傜側偗傟偽 End() 傪曉偡丅
     */
    iterator Upper_bound( const key_type& aKey );
    /**
     *  僉乕偑摿掕抣傪墇偊傞嵟弶偺梫慺傪巜偡斀暅巕傪曉偡丅
     *
     *  @param[in]  aKey    懳徾僉乕丅
     *  @return 僉乕抣偑 @a aKey 傪墇偊傞嵟弶偺梫慺傪億僀儞僩偡傞斀暅巕丅
     *          尒偮偐傜側偗傟偽 End() const 傪曉偡丅
     */
    const_iterator Upper_bound( const key_type& aKey ) const;
    /**
     *  摿掕偺僉乕偲堦抳偡傞愭摢丒枛旜梫慺傪巜偡斀暅巕傪曉偡丅
     *
     *  @param[in]  aKey    懳徾僉乕丅
     *  @return 儁傾 (Lower_bound(aKey), Upper_bound(aKey)) 傪曉偡丅
     */
    TSmbMusicAPLibPair<iterator, iterator> Equal_range( const key_type& aKey );
    /**
     *  摿掕偺僉乕偲堦抳偡傞愭摢丒枛旜梫慺傪巜偡斀暅巕傪曉偡丅
     *
     *  @param[in]  aKey    懳徾僉乕丅
     *  @return 儁傾 (Lower_bound(aKey) const, Upper_bound(aKey) const) 傪曉偡丅
     */
    TSmbMusicAPLibPair<const_iterator, const_iterator> Equal_range( const key_type& aKey ) const;
    /**
     *  僆僽僕僃僋僩偺岎姺丅
     *
     *  帺屓偲@a aRhs 偲偺娫偱丄慡梫慺傪岎姺偡傞丅<br>
     *  std::map<Key, T, Compare> 偲摨偠偔丄掕悢帪娫 O(1) 偱偁傝丄椺奜埨慡(Leave側偟)偱偁傞丅
     *
     *  @param[in]  aRhs    懳徾儅僢僾丅
     */
    void Swap( RSmbMusicAPLibMap& aRhs );

    /**
     *  慡梫慺偺嶍彍丅
     *
     *  偙偺儅僢僾偺慡梫慺傪嶍彍偡傞丅
     */
    void Clear();

    /**
     *  僐僺乕僆僽僕僃僋僩傪惗惉偟偰曉偡丅
     *
     *  杮僆僽僕僃僋僩偲摨堦偺抣傪帩偮丄怴偨側 heap object 傪惗惉(new)偟偰曉偡丅
     *
     *  @return 摨堦抣傪帩偮暋惢僆僽僕僃僋僩丅
     *  @attention  曉媝抣偼惗惉偝傟偨 heap object 偱偁傝丄強桳尃(攋婞愑擟)偼 caller 傊堏揮偡傞丅
     *  @attention  std::map<Key, T, Compare> 旕屳姺偺僆儕僕僫儖偱偁傞丅
     */
    RSmbMusicAPLibMap* CloneLC() const;

    /**
     *  慡儕僜乕僗偺攋婞丅
     *
     *  CleanupReleasePushL(T&) 偺揔梡傪壜擻偵偡傞偨傔愝偗偨傕偺丅<br>
     *  慡儕僜乕僗(摦揑儊儌儕)傪攋婞偟丄僨僼僅儖僩僐儞僗僩儔僋僞捈屻偲摨偠忬懺偵偡傞丅
     *
     *  @attention  儕僜乕僗奐曻傪敽傢側偄 std::map<Key, T, Compare> 屳姺偺梫慺嶍彍API偲偼丄堄枴丒寢壥偑堎側傞偙偲偵棷堄丅
     *  @attention  std::map<Key, T, Compare> 旕屳姺偺僆儕僕僫儖偱偁傞丅
     */
    void Release();

    /**
     *  斾妑墘嶼巕丅
     *
     *  @param[in]  aRhs    塃曈抣丅
     *  @return RSmbMusicAPLibVector::operator==()
     */
    TBool operator==( const RSmbMusicAPLibMap& aRhs ) const;
    /**
     *  斾妑墘嶼巕丅
     *
     *  @param[in]  aRhs    塃曈抣丅
     *  @return !(*this == aRhs)
     */
    TBool operator!=( const RSmbMusicAPLibMap& aRhs ) const;
    /**
     *  斾妑墘嶼巕丅
     *
     *  @param[in]  aRhs    塃曈抣丅
     *  @return RSmbMusicAPLibVector::operator<()
     */
    TBool operator<( const RSmbMusicAPLibMap& aRhs ) const;
    /**
     *  斾妑墘嶼巕丅
     *
     *  @param[in]  aRhs    塃曈抣丅
     *  @return aRhs < *this
     */
    TBool operator>( const RSmbMusicAPLibMap& aRhs ) const;
    /**
     *  斾妑墘嶼巕丅
     *
     *  @param[in]  aRhs    塃曈抣丅
     *  @return !(aRhs < *this)
     */
    TBool operator<=( const RSmbMusicAPLibMap& aRhs ) const;
    /**
     *  斾妑墘嶼巕丅
     *
     *  @param[in]  aRhs    塃曈抣丅
     *  @return !(*this < aRhs)
     */
    TBool operator>=( const RSmbMusicAPLibMap& aRhs ) const;

private:
    key_compare iCmp;       /**< 儐僯乕僋僉乕偺摍壙斾妑墘嶼丅       */
    Vec         iVec;       /**< 僐儞僥僫偺惓懱偱偁傞摦揑攝楍丅 */

    };  // end of class RSmbMusicAPLibMap

/** @relates RSmbMusicAPLibMap
 *  楢憐婰壇僐儞僥僫偺岎姺丅
 *
 *  @param[out] aLhs    嵍曈抣丅
 *  @param[out] aRhs    塃曈抣丅
 *  @see    RSmbMusicAPLibMap::Swap()
 */
template<typename K, typename T, class C, class DP>
void Swap( RSmbMusicAPLibMap<K, T, C, DP>& aLhs, const RSmbMusicAPLibMap<K, T, C, DP>& aRhs );

/**
 *  僐儞僥僫偵僥儞僾儗乕僩堷悢偲偟偰梌偊傞偙偲偑偱偒傞攋婞億儕僔乕丅
 *
 *  懳徾偑 TSmbMusicAPLibPair 宆偱偁傝丄 TSmbMusicAPLibPair::iFirst 偑 Heap object 偱偁傞偲偺慜採偱丄delete 墘嶼巕傪揔梡偡傞丅
 */
struct TSmbMusicAPLib_Delete1st
    {

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?