本文整理汇总了C++中DynArray::End方法的典型用法代码示例。如果您正苦于以下问题:C++ DynArray::End方法的具体用法?C++ DynArray::End怎么用?C++ DynArray::End使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DynArray
的用法示例。
在下文中一共展示了DynArray::End方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DataFormatException
void SimpleObjectSortedMapData< KeyT, CompareKeyT, AllocatorT >::Deserialize( ArchiveT& archive )
{
DynArray< ObjectPtr > components;
archive.DeserializeArray( components, ArchiveFlags::Sparse );
size_t componentCount = components.GetSize();
if ( componentCount % 2 != 0 )
{
throw Reflect::DataFormatException( TXT( "Unmatched map objects" ) );
}
// if we are referring to a real field, clear its contents
m_Data->Clear();
m_Data->Reserve( componentCount / 2 );
DynArray< ObjectPtr >::Iterator itr = components.Begin();
DynArray< ObjectPtr >::Iterator end = components.End();
while ( itr != end )
{
Data* key = SafeCast< Data >( *itr );
++itr;
Object* value = *itr;
++itr;
if ( key ) // The object value can be null, so don't check it here.
{
KeyT k;
Data::GetValue( key, k );
(*m_Data)[ k ] = value;
}
}
}
示例2:
void SimpleObjectSortedMapData< KeyT, CompareKeyT, AllocatorT >::Serialize( ArchiveT& archive )
{
DynArray< ObjectPtr > components;
components.Reserve( m_Data->GetSize() * 2 );
{
DataType::ConstIterator itr = m_Data->Begin();
DataType::ConstIterator end = m_Data->End();
for ( ; itr != end; ++itr )
{
ObjectPtr elem = Registry::GetInstance()->CreateInstance( Reflect::GetDataClass< KeyT >() );
Data* ser = AssertCast< Data >( elem.Ptr() );
ser->ConnectData( const_cast< KeyT* >( &itr->First() ) );
HELIUM_VERIFY( components.New( ser ) );
HELIUM_VERIFY( components.New( itr->Second() ) );
}
}
archive.SerializeArray( components );
{
DynArray< ObjectPtr >::Iterator itr = components.Begin();
DynArray< ObjectPtr >::Iterator end = components.End();
for ( ; itr != end; ++itr )
{
Data* ser = AssertCast< Data >( *itr );
ser->Disconnect();
++itr; // Skip over the object reference.
// might be useful to cache the data object here
}
}
}
示例3:
void SimpleSortedSetData< KeyT, CompareKeyT, AllocatorT >::Serialize( ArchiveT& archive )
{
DynArray< ObjectPtr > components;
components.Reserve( m_Data->GetSize() );
{
DataType::ConstIterator itr = m_Data->Begin();
DataType::ConstIterator end = m_Data->End();
for ( ; itr != end; ++itr )
{
ObjectPtr dataElem = Registry::GetInstance()->CreateInstance( Reflect::GetDataClass< KeyT >() );
// downcast to data type
Data* dataSer = AssertCast< Data >( dataElem );
// connect to our map data memory address
dataSer->ConnectData( const_cast< KeyT* >( &( *itr ) ) );
// serialize to the archive stream
HELIUM_VERIFY( components.New( dataSer ) );
}
}
archive.SerializeArray( components );
DynArray< ObjectPtr >::Iterator itr = components.Begin();
DynArray< ObjectPtr >::Iterator end = components.End();
for ( ; itr != end; ++itr )
{
Data* ser = AssertCast< Data >( *itr );
ser->Disconnect();
// might be useful to cache the data object here
}
}
示例4: LogisticException
void SimpleSortedSetData< KeyT, CompareKeyT, AllocatorT >::Deserialize( ArchiveT& archive )
{
DynArray< ObjectPtr > components;
archive.DeserializeArray( components );
// if we are referring to a real field, clear its contents
m_Data->Clear();
m_Data->Reserve( components.GetSize() );
DynArray< ObjectPtr >::Iterator itr = components.Begin();
DynArray< ObjectPtr >::Iterator end = components.End();
for ( ; itr != end; ++itr )
{
Data* data = SafeCast< Data >( *itr );
if ( !data )
{
throw LogisticException( TXT( "SortedSet value type has changed, this is unpossible" ) );
}
KeyT k;
Data::GetValue( data, k );
m_Data->Insert( k );
}
}
示例5: SerializeArray
void ArchiveXML::SerializeArray( const DynArray< ObjectPtr >& objects, uint32_t flags )
{
SerializeArray( objects.Begin(), objects.End(), flags );
}