![]() |
Dash Core
0.12.2.1
P2P Digital Currency
|
#include <prevector.h>
Classes | |
class | const_iterator |
class | const_reverse_iterator |
union | direct_or_indirect |
class | iterator |
class | reverse_iterator |
Public Types | |
typedef Size | size_type |
typedef Diff | difference_type |
typedef T | value_type |
typedef value_type & | reference |
typedef const value_type & | const_reference |
typedef value_type * | pointer |
typedef const value_type * | const_pointer |
Public Member Functions | |
void | assign (size_type n, const T &val) |
template<typename InputIterator > | |
void | assign (InputIterator first, InputIterator last) |
prevector () | |
prevector (size_type n) | |
prevector (size_type n, const T &val=T()) | |
template<typename InputIterator > | |
prevector (InputIterator first, InputIterator last) | |
prevector (const prevector< N, T, Size, Diff > &other) | |
prevector & | operator= (const prevector< N, T, Size, Diff > &other) |
size_type | size () const |
bool | empty () const |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
reverse_iterator | rbegin () |
const_reverse_iterator | rbegin () const |
reverse_iterator | rend () |
const_reverse_iterator | rend () const |
size_t | capacity () const |
T & | operator[] (size_type pos) |
const T & | operator[] (size_type pos) const |
void | resize (size_type new_size) |
void | reserve (size_type new_capacity) |
void | shrink_to_fit () |
void | clear () |
iterator | insert (iterator pos, const T &value) |
void | insert (iterator pos, size_type count, const T &value) |
template<typename InputIterator > | |
void | insert (iterator pos, InputIterator first, InputIterator last) |
iterator | erase (iterator pos) |
iterator | erase (iterator first, iterator last) |
void | push_back (const T &value) |
void | pop_back () |
T & | front () |
const T & | front () const |
T & | back () |
const T & | back () const |
void | swap (prevector< N, T, Size, Diff > &other) |
~prevector () | |
bool | operator== (const prevector< N, T, Size, Diff > &other) const |
bool | operator!= (const prevector< N, T, Size, Diff > &other) const |
bool | operator< (const prevector< N, T, Size, Diff > &other) const |
size_t | allocated_memory () const |
Private Member Functions | |
T * | direct_ptr (difference_type pos) |
const T * | direct_ptr (difference_type pos) const |
T * | indirect_ptr (difference_type pos) |
const T * | indirect_ptr (difference_type pos) const |
bool | is_direct () const |
void | change_capacity (size_type new_capacity) |
T * | item_ptr (difference_type pos) |
const T * | item_ptr (difference_type pos) const |
Private Attributes | |
size_type | _size |
union prevector::direct_or_indirect | _union |
Implements a drop-in replacement for std::vector<T> which stores up to N elements directly (without heap allocation). The types Size and Diff are used to store element counts, and can be any unsigned + signed type.
Storage layout is either:
The data type T must be movable by memmove/realloc(). Once we switch to C++, move constructors can be used instead.
Definition at line 30 of file prevector.h.
typedef const value_type* prevector< N, T, Size, Diff >::const_pointer |
Definition at line 38 of file prevector.h.
typedef const value_type& prevector< N, T, Size, Diff >::const_reference |
Definition at line 36 of file prevector.h.
typedef Diff prevector< N, T, Size, Diff >::difference_type |
Definition at line 33 of file prevector.h.
typedef value_type* prevector< N, T, Size, Diff >::pointer |
Definition at line 37 of file prevector.h.
typedef value_type& prevector< N, T, Size, Diff >::reference |
Definition at line 35 of file prevector.h.
typedef Size prevector< N, T, Size, Diff >::size_type |
Definition at line 32 of file prevector.h.
typedef T prevector< N, T, Size, Diff >::value_type |
Definition at line 34 of file prevector.h.
|
inline |
Definition at line 212 of file prevector.h.
|
inlineexplicit |
Definition at line 214 of file prevector.h.
|
inlineexplicit |
Definition at line 218 of file prevector.h.
|
inline |
Definition at line 227 of file prevector.h.
|
inline |
Definition at line 237 of file prevector.h.
|
inline |
Definition at line 415 of file prevector.h.
|
inline |
Definition at line 467 of file prevector.h.
Referenced by memusage::DynamicUsage().
|
inline |
Definition at line 187 of file prevector.h.
|
inline |
Definition at line 199 of file prevector.h.
|
inline |
Definition at line 402 of file prevector.h.
Referenced by CombineSignatures().
|
inline |
Definition at line 406 of file prevector.h.
|
inline |
Definition at line 270 of file prevector.h.
Referenced by CTxMemPool::addAddressIndex(), CTxMemPool::addSpentIndex(), ConnectBlock(), createmultisig(), DisconnectBlock(), EvalScript(), ExtractPubKey(), CScript::Find(), CScript::FindAndDelete(), FormatScript(), getblocktemplate(), CScript::GetOp(), GetSerializeSize_impl(), CScript::GetSigOpCount(), Hash160(), prevector< N, T, Size, Diff >::insert(), CBloomFilter::IsRelevantAndUpdate(), CScript::IsUnspendable(), listunspent(), CScript::operator+=(), prevector< N, T, Size, Diff >::operator<(), prevector< N, T, Size, Diff >::operator=(), prevector< N, T, Size, Diff >::operator==(), prevector< N, T, Size, Diff >::prevector(), ProduceSignature(), ScriptPubKeyToJSON(), ScriptPubKeyToUniv(), ScriptToAsmStr(), Serialize_impl(), Solver(), TxInErrorToJSON(), TxToJSON(), TxToUniv(), and validateaddress().
|
inline |
Definition at line 271 of file prevector.h.
|
inline |
Definition at line 280 of file prevector.h.
Referenced by prevector< N, T, Size, Diff >::assign(), prevector< N, T, Size, Diff >::insert(), prevector< N, T, Size, Diff >::push_back(), prevector< N, T, Size, Diff >::reserve(), and prevector< N, T, Size, Diff >::resize().
|
inlineprivate |
Definition at line 157 of file prevector.h.
Referenced by prevector< N, T, Size, Diff >::assign(), prevector< N, T, Size, Diff >::insert(), prevector< N, T, Size, Diff >::operator=(), prevector< N, T, Size, Diff >::prevector(), prevector< N, T, Size, Diff >::push_back(), prevector< N, T, Size, Diff >::reserve(), prevector< N, T, Size, Diff >::resize(), and prevector< N, T, Size, Diff >::shrink_to_fit().
|
inline |
Definition at line 319 of file prevector.h.
Referenced by prevector< N, T, Size, Diff >::assign(), Unserialize_impl(), and prevector< N, T, Size, Diff >::~prevector().
|
inlineprivate |
Definition at line 151 of file prevector.h.
Referenced by prevector< N, T, Size, Diff >::change_capacity(), and prevector< N, T, Size, Diff >::item_ptr().
|
inlineprivate |
Definition at line 152 of file prevector.h.
|
inline |
Definition at line 266 of file prevector.h.
Referenced by CScript::FindAndDelete(), Serialize_impl(), and CMasternodeBroadcast::SimpleCheck().
|
inline |
Definition at line 272 of file prevector.h.
Referenced by createmultisig(), prevector< N, T, Size, Diff >::erase(), EvalScript(), CScript::Find(), CScript::FindAndDelete(), FormatScript(), getblocktemplate(), CScript::GetOp2(), GetSerializeSize_impl(), CScript::GetSigOpCount(), Hash160(), CBloomFilter::IsRelevantAndUpdate(), listunspent(), CScript::operator+=(), prevector< N, T, Size, Diff >::operator<(), CScript::operator<<(), prevector< N, T, Size, Diff >::operator=(), prevector< N, T, Size, Diff >::operator==(), prevector< N, T, Size, Diff >::pop_back(), prevector< N, T, Size, Diff >::prevector(), ProduceSignature(), prevector< N, T, Size, Diff >::resize(), ScriptPubKeyToJSON(), ScriptPubKeyToUniv(), ScriptToAsmStr(), Serialize_impl(), Solver(), TxInErrorToJSON(), TxToJSON(), TxToUniv(), and validateaddress().
|
inline |
Definition at line 273 of file prevector.h.
|
inline |
Definition at line 365 of file prevector.h.
Referenced by prevector< N, T, Size, Diff >::pop_back(), and prevector< N, T, Size, Diff >::resize().
|
inline |
Definition at line 369 of file prevector.h.
|
inline |
Definition at line 394 of file prevector.h.
|
inline |
Definition at line 398 of file prevector.h.
|
inlineprivate |
Definition at line 153 of file prevector.h.
Referenced by prevector< N, T, Size, Diff >::change_capacity(), and prevector< N, T, Size, Diff >::item_ptr().
|
inlineprivate |
Definition at line 154 of file prevector.h.
|
inline |
Definition at line 323 of file prevector.h.
Referenced by CombineMultisig(), CScript::operator+=(), and CScript::operator<<().
|
inline |
Definition at line 335 of file prevector.h.
|
inline |
Definition at line 349 of file prevector.h.
|
inlineprivate |
Definition at line 155 of file prevector.h.
Referenced by prevector< N, T, Size, Diff >::allocated_memory(), prevector< N, T, Size, Diff >::capacity(), prevector< N, T, Size, Diff >::change_capacity(), prevector< N, T, Size, Diff >::item_ptr(), prevector< N, T, Size, Diff >::size(), and prevector< N, T, Size, Diff >::~prevector().
|
inlineprivate |
Definition at line 183 of file prevector.h.
Referenced by prevector< N, T, Size, Diff >::assign(), prevector< N, T, Size, Diff >::back(), prevector< N, T, Size, Diff >::begin(), prevector< N, T, Size, Diff >::end(), prevector< N, T, Size, Diff >::front(), prevector< N, T, Size, Diff >::insert(), prevector< N, T, Size, Diff >::operator=(), prevector< N, T, Size, Diff >::operator[](), prevector< N, T, Size, Diff >::prevector(), prevector< N, T, Size, Diff >::push_back(), prevector< N, T, Size, Diff >::rbegin(), prevector< N, T, Size, Diff >::rend(), and prevector< N, T, Size, Diff >::resize().
|
inlineprivate |
Definition at line 184 of file prevector.h.
|
inline |
Definition at line 440 of file prevector.h.
|
inline |
Definition at line 444 of file prevector.h.
|
inline |
Definition at line 247 of file prevector.h.
|
inline |
Definition at line 423 of file prevector.h.
|
inline |
Definition at line 288 of file prevector.h.
|
inline |
Definition at line 292 of file prevector.h.
|
inline |
Definition at line 390 of file prevector.h.
|
inline |
Definition at line 381 of file prevector.h.
Referenced by CPrivateSendClient::CreateDenominated(), CPrivateSendClient::MakeCollateralAmounts(), CScript::push_int64(), sendmany(), and SendMoney().
|
inline |
Definition at line 275 of file prevector.h.
|
inline |
Definition at line 276 of file prevector.h.
|
inline |
Definition at line 277 of file prevector.h.
|
inline |
Definition at line 278 of file prevector.h.
|
inline |
Definition at line 309 of file prevector.h.
|
inline |
Definition at line 296 of file prevector.h.
Referenced by prevector< N, T, Size, Diff >::clear(), CScriptCompressor::Decompress(), prevector< N, T, Size, Diff >::operator=(), prevector< N, T, Size, Diff >::prevector(), CScriptCompressor::Unserialize(), and Unserialize_impl().
|
inline |
Definition at line 315 of file prevector.h.
|
inline |
Definition at line 262 of file prevector.h.
Referenced by CBasicKeyStore::AddCScript(), prevector< N, T, Size, Diff >::assign(), prevector< N, T, Size, Diff >::back(), prevector< N, T, Size, Diff >::change_capacity(), prevector< N, T, Size, Diff >::empty(), prevector< N, T, Size, Diff >::end(), EvalScript(), PaymentServer::fetchPaymentACK(), CScript::FindAndDelete(), CScriptCompressor::GetSerializeSize(), GetSerializeSize_impl(), prevector< N, T, Size, Diff >::insert(), IsStandard(), IsStandardTx(), CScriptCompressor::IsToKeyID(), CScriptCompressor::IsToPubKey(), CScriptCompressor::IsToScriptID(), CScript::IsUnspendable(), CWallet::LoadCScript(), prevector< N, T, Size, Diff >::operator<(), prevector< N, T, Size, Diff >::operator=(), prevector< N, T, Size, Diff >::operator==(), prevector< N, T, Size, Diff >::prevector(), CPrivateSendServer::ProcessMessage(), prevector< N, T, Size, Diff >::push_back(), prevector< N, T, Size, Diff >::rbegin(), prevector< N, T, Size, Diff >::resize(), CScriptCompressor::Serialize(), Serialize_impl(), prevector< N, T, Size, Diff >::shrink_to_fit(), CMasternodeBroadcast::SimpleCheck(), and Solver().
|
inline |
Definition at line 410 of file prevector.h.
Referenced by CScriptCheck::swap().
|
private |
Definition at line 142 of file prevector.h.
Referenced by prevector< N, T, Size, Diff >::assign(), prevector< N, T, Size, Diff >::change_capacity(), prevector< N, T, Size, Diff >::erase(), prevector< N, T, Size, Diff >::insert(), prevector< N, T, Size, Diff >::is_direct(), prevector< N, T, Size, Diff >::operator=(), prevector< N, T, Size, Diff >::prevector(), prevector< N, T, Size, Diff >::push_back(), prevector< N, T, Size, Diff >::resize(), prevector< N, T, Size, Diff >::size(), and prevector< N, T, Size, Diff >::swap().
|
private |
Referenced by prevector< N, T, Size, Diff >::allocated_memory(), prevector< N, T, Size, Diff >::capacity(), prevector< N, T, Size, Diff >::change_capacity(), prevector< N, T, Size, Diff >::direct_ptr(), prevector< N, T, Size, Diff >::indirect_ptr(), prevector< N, T, Size, Diff >::swap(), and prevector< N, T, Size, Diff >::~prevector().