📄 rsmbmusicaplibvector.h
字号:
* @see Capacity() const
*/
void ReserveL( size_type aNum );
/**
* 巜掕埵抲偺梫慺傊偺嶲徠傪曉偡丅
*
* @param[in] aIdx 埵抲僀儞僨僢僋僗丅嫋梕斖埻偼 [0, Size()) 偱偁傞丅
* @return 埵抲僀儞僨僢僋僗 @a aIdx 偺梫慺傊偺嶲徠丅
* @attention 嫋梕斖埻奜偺 @a aIdx 傪梌偊偨応崌丄寢壥偼晄掕偱偁傞丅
*/
reference At( size_type aIdx );
/**
* 巜掕埵抲偺梫慺傊偺const嶲徠傪曉偡丅
*
* @param[in] aIdx 埵抲僀儞僨僢僋僗丅嫋梕斖埻偼 [0, Size()) 偱偁傞丅
* @return 埵抲僀儞僨僢僋僗 @a aIdx 偺梫慺傊偺嶲徠丅
* @attention 嫋梕斖埻奜偺 @a aIdx 傪梌偊偨応崌丄寢壥偼晄掕偱偁傞丅
*/
const_reference At( size_type aIdx ) const;
/**
* 巜掕埵抲偺梫慺傊偺嶲徠傪曉偡丅
*
* At(size_type) 偲慡偔摍壙丅慻傒崬傒宆攝楍偲摨偠峔暥偱偺嶲徠傪壜擻偵偡傞丅
*
* @param[in] aIdx see At(size_type)
* @return see At(size_type)
* @attention see At(size_type)
*/
reference operator[]( size_type aIdx );
/**
* 巜掕埵抲偺梫慺傊偺const嶲徠傪曉偡丅
*
* At(size_type) const 偲慡偔摍壙丅慻傒崬傒宆攝楍偲摨偠峔暥偱偺嶲徠傪壜擻偵偡傞丅
*
* @param[in] aIdx see At(size_type) const
* @return see At(size_type) const
* @attention see At(size_type) const
*/
const_reference operator[]( size_type aIdx ) const;
/**
* 嵟弶偺梫慺傊偺嶲徠傪曉偡丅
*
* @return 嵟弶偺梫慺傊偺嶲徠丅
*/
reference Front();
/**
* 嵟弶偺梫慺傊偺const嶲徠傪曉偡丅
*
* @return 嵟弶偺梫慺傊偺const嶲徠丅
*/
const_reference Front() const;
/**
* 嵟屻偺梫慺傊偺嶲徠傪曉偡丅
*
* @return 嵟屻偺梫慺傊偺嶲徠丅
*/
reference Back();
/**
* 嵟屻偺梫慺傊偺const嶲徠傪曉偡丅
*
* @return 嵟屻偺梫慺傊偺const嶲徠丅
*/
const_reference Back() const;
/**
* 枛旜傊偺侾梫慺憓擖丅
*
* @a aVal 偺抣僐僺乕傪帺屓偺嵟屻偵憓擖偡傞丅
*
* @param[in] aVal 憓擖偡傞抣丅
*/
void Push_backL( const value_type& aVal );
/**
* 枛旜偺侾梫慺嶍彍丅
*
* 帺屓偺嵟屻偺侾梫慺傪嶍彍偡傞丅
*/
void Pop_back();
/**
* 巜掕埵抲傊偺侾梫慺憓擖丅
*
* 埵抲 @a aPos 偺慜偵丄@a aVal 偺抣僐僺乕傪憓擖偡傞丅
*
* @param[in] aPos 憓擖埵抲傪帵偡僀僥儗乕僞丅
* @param[in] aVal 憓擖偡傞抣丅
* @return 憓擖偝傟偨梫慺傪億僀儞僩偡傞丅
*/
iterator InsertL( iterator aPos, const value_type& aVal );
/**
* 巜掕埵抲傊偺摨抣梫慺値屄憓擖丅
*
* 埵抲 @a aPos 偺慜偵丄@a aVal 偺抣僐僺乕 @a aNum 屄傪憓擖偡傞丅
*
* @param[in] aPos 憓擖埵抲傪帵偡僀僥儗乕僞丅
* @param[in] aNum 憓擖偡傞梫慺悢丅
* @param[in] aVal 憓擖偡傞抣丅
*/
void InsertL( iterator aPos, size_type aNum, const value_type& aVal );
/**
* 巜掕埵抲傊偺値梫慺憓擖丅
*
* 埵抲 @a aPos 偺慜偵丄斖埻 [@a aFirst, @a aLast) 偺梫慺偺抣僐僺乕傪憓擖偡傞丅
*
* @param[in] aPos 憓擖埵抲傪帵偡僀僥儗乕僞丅
* @param[in] aFirst 擖椡奐巒埵抲丅
* @param[in] aLast 擖椡廔椆埵抲丅
* @attention 僀僥儗乕僞宆 @a InputIterator 傊偺梫媮帠崁偼 STL 偵摨偠丅
*/
template<typename InputIterator>
void InsertL( iterator aPos, InputIterator aFirst, InputIterator aLast );
/**
* Ambiguity buster.
*
* 宆 @a T 偑惍悢偺偲偒丄 InsertL(iterator, size_type, const value_type&) 傪屇傇偮傕傝偺僐乕僪偑
* InsertL(iterator, InputIterator, InputIterator) 偵僨傿僗僷僢僠偝傟偰偟傑偆偺偱丄偦偺懳嶔丅
*
* @param[in] aPos see InsertL(iterator, size_type, const value_type&)
* @param[in] aNum see InsertL(iterator, size_type, const value_type&)
* @param[in] aVal see InsertL(iterator, size_type, const value_type&)
*/
void InsertL( iterator aPos, TInt aNum, TInt aVal );
/**
* 巜掕埵抲偺侾梫慺嶍彍丅
*
* 埵抲 @a aPos 偺梫慺傪嶍彍偡傞丅
*
* @param[in] aPos 懳徾埵抲丅
* @return 嶍彍偟偨梫慺偺屻懕梫慺傪億僀儞僩偡傞丅
*/
iterator Erase( iterator aPos );
/**
* 巜掕斖埻偺値梫慺嶍彍丅
*
* 斖埻 [@a aFirst, @a aLast) 偺慡梫慺傪嶍彍偡傞丅
*
* @param[in] aFirst 嶍彍奐巒埵抲丅
* @param[in] aLast 嶍彍廔椆埵抲丅
* @return 嶍彍偟偨梫慺偺屻懕梫慺傪億僀儞僩偡傞丅
*/
iterator Erase( iterator aFirst, iterator aLast );
/**
* 僆僽僕僃僋僩偺岎姺丅
*
* 帺屓偲@a aRhs 偲偺娫偱丄慡梫慺傪岎姺偡傞丅<br>
* std::vector<T> 偲摨偠偔丄掕悢帪娫 O(1) 偱偁傝丄椺奜埨慡(Leave側偟)偱偁傞丅
*
* @param[in] aRhs 懳徾儀僋僩儖丅
*/
void Swap( RSmbMusicAPLibVector& aRhs );
/**
* 慡梫慺偺嶍彍丅
*
* 偙偺儀僋僩儖偺慡梫慺傪嶍彍偡傞丅
*/
void Clear();
/**
* 僐僺乕僆僽僕僃僋僩傪惗惉偟偰曉偡丅
*
* 杮僆僽僕僃僋僩偲摨堦偺抣傪帩偮丄怴偨側 heap object 傪惗惉(new)偟偰曉偡丅
*
* @return 摨堦抣傪帩偮暋惢僆僽僕僃僋僩丅
* @attention 曉媝抣偼惗惉偝傟偨 heap object 偱偁傝丄強桳尃(攋婞愑擟)偼 caller 傊堏揮偡傞丅
* @attention std::vector<T> 旕屳姺偺僆儕僕僫儖偱偁傞丅
*/
RSmbMusicAPLibVector* CloneLC() const;
/**
* 慡儕僜乕僗偺攋婞丅
*
* CleanupReleasePushL(T&) 偺揔梡傪壜擻偵偡傞偨傔愝偗偨傕偺丅<br>
* 慡儕僜乕僗(摦揑儊儌儕)傪攋婞偟丄僨僼僅儖僩僐儞僗僩儔僋僞捈屻偲摨偠忬懺偵偡傞丅
*
* @attention 儕僜乕僗奐曻傪敽傢側偄 std::vector<T> 屳姺偺梫慺嶍彍API偲偼丄堄枴丒寢壥偑堎側傞偙偲偵棷堄丅
* @attention std::vector<T> 旕屳姺偺僆儕僕僫儖偱偁傞丅
*/
void Release();
/**
* 斾妑墘嶼巕丅
*
* @param[in] aRhs 塃曈抣丅
* @return Size() 偑摍偟偔丄偐偮慡梫慺偑摍抣偱偁傞偐丄偺昡壙寢壥丅
*/
TBool operator==( const RSmbMusicAPLibVector& aRhs ) const;
/**
* 斾妑墘嶼巕丅
*
* @param[in] aRhs 塃曈抣丅
* @return !(*this == aRhs)
*/
TBool operator!=( const RSmbMusicAPLibVector& aRhs ) const;
/**
* 斾妑墘嶼巕丅
*
* @param[in] aRhs 塃曈抣丅
* @return Lexicographical_compare( Begin(), End(), aRhs.Begin(), aRhs.End() )
*/
TBool operator<( const RSmbMusicAPLibVector& aRhs ) const;
/**
* 斾妑墘嶼巕丅
*
* @param[in] aRhs 塃曈抣丅
* @return aRhs < *this
*/
TBool operator>( const RSmbMusicAPLibVector& aRhs ) const;
/**
* 斾妑墘嶼巕丅
*
* @param[in] aRhs 塃曈抣丅
* @return !(aRhs < *this)
*/
TBool operator<=( const RSmbMusicAPLibVector& aRhs ) const;
/**
* 斾妑墘嶼巕丅
*
* @param[in] aRhs 塃曈抣丅
* @return !(*this < aRhs)
*/
TBool operator>=( const RSmbMusicAPLibVector& aRhs ) const;
private:
/**
* 埵抲 @a aPos 偺慜偵丄@a aVal 偺抣僐僺乕 @a aNum 屄傪憓擖偡傞丅
*
* fill 宯偺壓惪偗丅
* - 昁梫側傜 ExpandL() 傪屇傃弌偟偰儊儌儕妱傝摉偰丅
* - 憓擖斖埻慡梫慺傪 ConstructL() 偱弶婜壔丅
*
* @param[in] aPos see InsertL(iterator, size_type, const value_type&)
* @param[in] aNum see InsertL(iterator, size_type, const value_type&)
* @param[in] aVal see InsertL(iterator, size_type, const value_type&)
*/
void InsertFillL( iterator aPos, size_type aNum, const value_type& aVal );
/**
* 攝楍奼挘丅
*
* 僀儞僨僢僋僗埵抲 @a aPos 偵 @a aNum 屄暘偺梫慺儊儌儕傪妱傝摉偰丄婛懚偺梫慺偼屻曽傊堏摦偝偣傞丅
*
* @param[in] aPos 埵抲僀儞僨僢僋僗丅
* @param[in] aNum 梫慺悢丅
* @return 崱夞偺憓擖奐巒埵抲傪巜偡僀僥儗乕僞( 愭摢 + @a aPos )傪曉偡丅
* @note CBufFlat::ExpandL() 偺 wrapper 偵偡偓側偄偑丄摨API偼扨埵偑 byte 側偺偱丄岞奐API傪彆偗傞扨埵曄姺宯偲偟偰愝偗偨丅
*/
iterator ExpandL( size_type aPos, size_type aNum );
/**
* 攝楍婛懚梫慺斖埻偺愗傝媗傔嶍彍丅
*
* 僀儞僨僢僋僗埵抲 @a aPos 偐傜 @a aNum 屄暘偺梫慺儊儌儕傪嶍彍偟丄婛懚偺屻曽梫慺偼慜曽傊堏摦偝偣傞丅
*
* @param[in] aPos 埵抲僀儞僨僢僋僗丅
* @param[in] aNum 梫慺悢丅
* @return 崱夞偺嶍彍奐巒埵抲傪巜偡僀僥儗乕僞( 愭摢 + @a aPos )傪曉偡丅
* @note CBufFlat::Delete() 偺 wrapper 偵偡偓側偄偑丄摨API偼扨埵偑 byte 側偺偱丄岞奐API傪彆偗傞扨埵曄姺宯偲偟偰愝偗偨丅
*/
iterator Delete( size_type aPos, size_type aNum );
/**
* 巜掕儊儌儕埵抲偵僆僽僕僃僋僩惗惉丅
*
* 攝抲峔暥 new 傪梡偄偰丄傾僪儗僗 @a aPtr 偵 @a T 偺僐僺乕僐儞僗僩儔僋僞傪嶌梡偝偣傞丅
*
* @param[in] aPtr 懳徾儊儌儕傾僪儗僗丅
* @param[in] aVal 僆僽僕僃僋僩弶婜抣丅
*/
static void Construct( value_type* aPtr, const value_type& aVal );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -