Panda3D
Public Types | Public Member Functions

ov_multiset< Key, Compare > Class Template Reference

A specialization of ordered_vector that emulates a standard STL set: many copies of each element are allowed. More...

#include "ordered_vector.h"

Inheritance diagram for ov_multiset< Key, Compare >:
ordered_vector< Key, Compare >

List of all members.

Public Types

typedef const_iterator_0 const_iterator
typedef Vector::const_iterator const_iterator_0
typedef const_reference_0 const_reference
typedef const Key & const_reference_0
typedef const_reverse_iterator_0 const_reverse_iterator
typedef
Vector::const_reverse_iterator 
const_reverse_iterator_0
typedef difference_type_0 difference_type
typedef Vector::difference_type difference_type_0
typedef iterator_0 iterator
typedef ordered_vector< Key,
Compare >::iterator_0 
iterator_0
typedef key_compare_0 key_compare
typedef Compare key_compare_0
typedef key_type_0 key_type
typedef Key key_type_0
typedef reference_0 reference
typedef Key & reference_0
typedef reverse_iterator_0 reverse_iterator
typedef Vector::reverse_iterator reverse_iterator_0
typedef size_type_0 size_type
typedef Vector::size_type size_type_0
typedef value_compare_0 value_compare
typedef Compare value_compare_0
typedef value_type_0 value_type
typedef ordered_vector< Key,
Compare >::value_type_0 
value_type_0

Public Member Functions

 ov_multiset (TypeHandle type_handle=ov_set_type_handle)
 ov_multiset (const Compare &compare, TypeHandle type_handle=ov_set_type_handle)
 ov_multiset (const ov_multiset< Key, Compare > &copy)
iterator_0 begin ()
 Returns the iterator that marks the first element in the ordered vector.
const_iterator_0 begin () const
 Returns the iterator that marks the first element in the ordered vector.
void clear ()
 Removes all elements from the ordered vector.
size_type_0 count (const key_type_0 &key) const
 Returns the number of elements that sort equivalent to the key that are in the vector.
bool empty () const
 Returns true if the ordered vector is empty, false otherwise.
iterator_0 end ()
 Returns the iterator that marks the end of the ordered vector.
const_iterator_0 end () const
 Returns the iterator that marks the end of the ordered vector.
pair< iterator_0, iterator_0 > equal_range (const key_type_0 &key)
pair< const_iterator_0,
const_iterator_0 > 
equal_range (const key_type_0 &key) const
iterator_0 erase (iterator_0 position)
size_type_0 erase (const key_type_0 &key)
void erase (iterator_0 first, iterator_0 last)
iterator_0 find (const key_type_0 &key)
const_iterator_0 find (const key_type_0 &key) const
iterator_0 find_particular (const key_type_0 &key)
const_iterator_0 find_particular (const key_type_0 &key) const
iterator_0 insert (iterator_0 position, const value_type_0 &key)
iterator_0 insert (const value_type_0 &key)
iterator_0 insert_nonunique (iterator_0 position, const value_type_0 &key)
iterator_0 insert_nonunique (const value_type_0 &key)
pair< iterator_0, bool > insert_unique (const value_type_0 &key)
iterator_0 insert_unique (iterator_0 position, const value_type_0 &key)
iterator_0 insert_unverified (iterator_0 position, const value_type_0 &key)
const_iterator_0 lower_bound (const key_type_0 &key) const
iterator_0 lower_bound (const key_type_0 &key)
size_type_0 max_size () const
 Returns the maximum number of elements that can possibly be stored in an ordered vector.
bool operator!= (const ordered_vector< Key, Compare > &other) const
 Returns true if the two ordered vectors are not memberwise equivalent, false if they are.
bool operator< (const ordered_vector< Key, Compare > &other) const
 Returns true if this ordered vector sorts lexicographically before the other one, false otherwise.
bool operator<= (const ordered_vector< Key, Compare > &other) const
 Returns true if this ordered vector sorts lexicographically before the other one or is equivalent, false otherwise.
ov_multiset< Key, Compare > & operator= (const ov_multiset< Key, Compare > &copy)
bool operator== (const ordered_vector< Key, Compare > &other) const
 Returns true if the two ordered vectors are memberwise equivalent, false otherwise.
bool operator> (const ordered_vector< Key, Compare > &other) const
 Returns true if this ordered vector sorts lexicographically after the other one, false otherwise.
bool operator>= (const ordered_vector< Key, Compare > &other) const
 Returns true if this ordered vector sorts lexicographically after the other one or is equivalent, false otherwise.
reference operator[] (size_type_0 n)
const_reference operator[] (size_type_0 n) const
void pop_back ()
 Removes the last element at the end of the vector.
void push_back (const value_type_0 &key)
 Adds the new element to the end of the vector without regard for proper sorting.
reverse_iterator_0 rbegin ()
 Returns the iterator that marks the first element in the ordered vector, when viewed in reverse order.
const_reverse_iterator_0 rbegin () const
 Returns the iterator that marks the first element in the ordered vector, when viewed in reverse order.
const_reverse_iterator_0 rend () const
 Returns the iterator that marks the end of the ordered vector, when viewed in reverse order.
reverse_iterator_0 rend ()
 Returns the iterator that marks the end of the ordered vector, when viewed in reverse order.
void reserve (size_type_0 n)
size_type_0 size () const
 Returns the number of elements in the ordered vector.
void sort ()
 Maps to sort_nonunique().
void sort_nonunique ()
 Ensures that the vector is properly sorted after a potentially damaging operation.
void sort_unique ()
 Ensures that the vector is properly sorted after a potentially damaging operation.
void swap (ordered_vector< Key, Compare > &other)
 Exchanges the contents of this vector and the other vector, in constant time (e.g., with a pointer swap).
iterator_0 upper_bound (const key_type_0 &key)
const_iterator_0 upper_bound (const key_type_0 &key) const
bool verify_list () const
 Maps to verify_list_nonunique().
bool verify_list_nonunique () const
bool verify_list_unique () const

Detailed Description

template<class Key, class Compare = less<Key>>
class ov_multiset< Key, Compare >

A specialization of ordered_vector that emulates a standard STL set: many copies of each element are allowed.

Definition at line 302 of file ordered_vector.h.


Member Function Documentation

template<class Key , class Compare >
ordered_vector< Key, Compare >::ITERATOR ordered_vector< Key, Compare >::begin ( ) [inline, inherited]

Returns the iterator that marks the first element in the ordered vector.

Definition at line 86 of file ordered_vector.I.

Referenced by AnimPreloadTable::add_anims_from(), RenderEffects::adjust_transform(), MayaNodeTree::clear_egg(), CharacterJoint::clear_local_transforms(), CharacterJoint::clear_net_transforms(), TransformBlend::compare_to(), TextureAttrib::compare_to_impl(), TexMatrixAttrib::compare_to_impl(), LightAttrib::compare_to_impl(), ClipPlaneAttrib::compare_to_impl(), TextureAttrib::complete_pointers(), RenderEffects::complete_pointers(), ClipPlaneAttrib::complete_pointers(), TransformBlend::complete_pointers(), TextureAttrib::cull_callback(), RenderEffects::cull_callback(), AsyncTaskManager::do_has_task(), AnimPreloadTable::find_anim(), RenderEffects::find_effect(), AttribNodeRegistry::find_node(), TextureAttrib::find_on_stage(), Multifile::find_subfile(), AsyncTaskManager::get_active_tasks(), CharacterJoint::get_local_transforms(), CharacterJoint::get_net_transforms(), SparseArray::get_next_higher_different_bit(), AsyncTaskManager::get_next_wake_time(), SparseArray::get_num_bits(), SparseArray::get_num_off_bits(), SparseArray::get_num_on_bits(), AsyncTaskManager::get_sleeping_tasks(), AsyncTaskManager::get_tasks(), TextureAttrib::has_cull_callback(), VertexTransform::mark_modified(), TransformBlend::normalize_weights(), RenderEffects::operator<(), GraphicsEngine::remove_all_windows(), AnimPreloadTable::remove_anim(), AttribNodeRegistry::remove_node(), Multifile::remove_subfile(), GraphicsEngine::remove_window(), GraphicsEngine::render_frame(), Multifile::repack(), GraphicsEngine::reset_all_windows(), MayaNodeTree::reset_sliders(), RenderEffects::safe_to_combine(), RenderEffects::safe_to_transform(), CharacterJoint::update_internals(), SparseArray::write_datagram(), TextureAttrib::write_datagram(), TexMatrixAttrib::write_datagram(), RenderEffects::write_datagram(), LightAttrib::write_datagram(), ClipPlaneAttrib::write_datagram(), TransformBlend::write_datagram(), CharacterJoint::write_datagram(), and AnimPreloadTable::write_datagram().

template<class Key , class Compare >
ordered_vector< Key, Compare >::CONST_ITERATOR ordered_vector< Key, Compare >::begin ( ) const [inline, inherited]

Returns the iterator that marks the first element in the ordered vector.

Definition at line 134 of file ordered_vector.I.

template<class Key , class Compare >
void ordered_vector< Key, Compare >::clear ( ) [inline, inherited]
template<class Key , class Compare >
ordered_vector< Key, Compare >::SIZE_TYPE ordered_vector< Key, Compare >::count ( const key_type_0 &  key) const [inline, inherited]

Returns the number of elements that sort equivalent to the key that are in the vector.

Definition at line 521 of file ordered_vector.I.

Referenced by CharacterJoint::has_local_transform(), and CharacterJoint::has_net_transform().

template<class Key , class Compare >
bool ordered_vector< Key, Compare >::empty ( ) const [inline, inherited]
template<class Key , class Compare >
ordered_vector< Key, Compare >::ITERATOR ordered_vector< Key, Compare >::end ( ) [inline, inherited]

Returns the iterator that marks the end of the ordered vector.

Definition at line 98 of file ordered_vector.I.

Referenced by AnimPreloadTable::add_anims_from(), RenderEffects::adjust_transform(), MayaNodeTree::clear_egg(), CharacterJoint::clear_local_transforms(), CharacterJoint::clear_net_transforms(), TransformBlend::compare_to(), TextureAttrib::compare_to_impl(), TexMatrixAttrib::compare_to_impl(), LightAttrib::compare_to_impl(), ClipPlaneAttrib::compare_to_impl(), TextureAttrib::complete_pointers(), ClipPlaneAttrib::complete_pointers(), TransformBlend::complete_pointers(), TextureAttrib::cull_callback(), RenderEffects::cull_callback(), AsyncTaskManager::do_find_task_chain(), AsyncTaskManager::do_has_task(), AnimPreloadTable::find_anim(), RenderEffects::find_effect(), AttribNodeRegistry::find_node(), TextureAttrib::find_on_stage(), Multifile::find_subfile(), AsyncTaskManager::get_active_tasks(), RenderEffects::get_effect(), CharacterJoint::get_local_transforms(), CharacterJoint::get_net_transforms(), SparseArray::get_next_higher_different_bit(), AsyncTaskManager::get_next_wake_time(), SparseArray::get_num_off_bits(), SparseArray::get_num_on_bits(), TextureAttrib::get_on_stage_override(), TextureAttrib::get_on_texture(), TexMatrixAttrib::get_override(), AsyncTaskManager::get_sleeping_tasks(), AsyncTaskManager::get_tasks(), TransformBlend::get_weight(), TextureAttrib::has_cull_callback(), Multifile::has_directory(), LightAttrib::has_off_light(), ClipPlaneAttrib::has_off_plane(), TextureAttrib::has_off_stage(), LightAttrib::has_on_light(), ClipPlaneAttrib::has_on_plane(), TextureAttrib::has_on_stage(), TexMatrixAttrib::has_stage(), TransformBlend::has_transform(), AttribNodeRegistry::lookup_node(), VertexTransform::mark_modified(), TransformBlend::normalize_weights(), RenderEffects::operator<(), GraphicsEngine::remove_all_windows(), AttribNodeRegistry::remove_node(), AsyncTaskManager::remove_task_chain(), TransformBlend::remove_transform(), GraphicsEngine::remove_window(), GraphicsEngine::render_frame(), Multifile::repack(), GraphicsEngine::reset_all_windows(), MayaNodeTree::reset_sliders(), RenderEffects::safe_to_combine(), RenderEffects::safe_to_transform(), Multifile::scan_directory(), VirtualFileSimple::scan_local_directory(), CharacterJoint::update_internals(), SparseArray::write_datagram(), TextureAttrib::write_datagram(), TexMatrixAttrib::write_datagram(), RenderEffects::write_datagram(), LightAttrib::write_datagram(), ClipPlaneAttrib::write_datagram(), TransformBlend::write_datagram(), CharacterJoint::write_datagram(), and AnimPreloadTable::write_datagram().

template<class Key , class Compare >
ordered_vector< Key, Compare >::CONST_ITERATOR ordered_vector< Key, Compare >::end ( ) const [inline, inherited]

Returns the iterator that marks the end of the ordered vector.

Definition at line 146 of file ordered_vector.I.

template<class Key , class Compare >
ordered_vector< Key, Compare >::SIZE_TYPE ordered_vector< Key, Compare >::max_size ( ) const [inline, inherited]

Returns the maximum number of elements that can possibly be stored in an ordered vector.

Definition at line 215 of file ordered_vector.I.

template<class Key, class Compare>
bool ordered_vector< Key, Compare >::operator!= ( const ordered_vector< Key, Compare > &  other) const [inline, inherited]

Returns true if the two ordered vectors are not memberwise equivalent, false if they are.

Definition at line 251 of file ordered_vector.I.

template<class Key, class Compare>
bool ordered_vector< Key, Compare >::operator< ( const ordered_vector< Key, Compare > &  other) const [inline, inherited]

Returns true if this ordered vector sorts lexicographically before the other one, false otherwise.

Definition at line 264 of file ordered_vector.I.

template<class Key, class Compare>
bool ordered_vector< Key, Compare >::operator<= ( const ordered_vector< Key, Compare > &  other) const [inline, inherited]

Returns true if this ordered vector sorts lexicographically before the other one or is equivalent, false otherwise.

Definition at line 290 of file ordered_vector.I.

template<class Key, class Compare>
bool ordered_vector< Key, Compare >::operator== ( const ordered_vector< Key, Compare > &  other) const [inline, inherited]

Returns true if the two ordered vectors are memberwise equivalent, false otherwise.

Definition at line 239 of file ordered_vector.I.

template<class Key, class Compare>
bool ordered_vector< Key, Compare >::operator> ( const ordered_vector< Key, Compare > &  other) const [inline, inherited]

Returns true if this ordered vector sorts lexicographically after the other one, false otherwise.

Definition at line 277 of file ordered_vector.I.

template<class Key, class Compare>
bool ordered_vector< Key, Compare >::operator>= ( const ordered_vector< Key, Compare > &  other) const [inline, inherited]

Returns true if this ordered vector sorts lexicographically after the other one or is equivalent, false otherwise.

Definition at line 303 of file ordered_vector.I.

template<class Key , class Compare >
void ordered_vector< Key, Compare >::pop_back ( ) [inline, inherited]

Removes the last element at the end of the vector.

Definition at line 692 of file ordered_vector.I.

Referenced by AsyncTaskManager::cleanup().

template<class Key , class Compare >
void ordered_vector< Key, Compare >::push_back ( const value_type_0 &  key) [inline, inherited]

Adds the new element to the end of the vector without regard for proper sorting.

This is a bad idea to do except to populate the vector the first time; be sure to call sort() after you have added all the elements.

Definition at line 680 of file ordered_vector.I.

Referenced by AnimPreloadTable::add_anim(), AnimPreloadTable::add_anims_from(), TextureAttrib::complete_pointers(), TextureAttrib::fillin(), TexMatrixAttrib::fillin(), RenderEffects::fillin(), ClipPlaneAttrib::fillin(), TransformBlend::fillin(), AnimPreloadTable::fillin(), LightAttrib::finalize(), SparseArray::read_datagram(), and GraphicsEngine::render_frame().

template<class Key , class Compare >
ordered_vector< Key, Compare >::REVERSE_ITERATOR ordered_vector< Key, Compare >::rbegin ( ) [inline, inherited]

Returns the iterator that marks the first element in the ordered vector, when viewed in reverse order.

Definition at line 110 of file ordered_vector.I.

Referenced by SparseArray::compare_to().

template<class Key , class Compare >
ordered_vector< Key, Compare >::CONST_REVERSE_ITERATOR ordered_vector< Key, Compare >::rbegin ( ) const [inline, inherited]

Returns the iterator that marks the first element in the ordered vector, when viewed in reverse order.

Definition at line 158 of file ordered_vector.I.

template<class Key , class Compare >
ordered_vector< Key, Compare >::REVERSE_ITERATOR ordered_vector< Key, Compare >::rend ( ) [inline, inherited]

Returns the iterator that marks the end of the ordered vector, when viewed in reverse order.

Definition at line 122 of file ordered_vector.I.

Referenced by SparseArray::compare_to().

template<class Key , class Compare >
ordered_vector< Key, Compare >::CONST_REVERSE_ITERATOR ordered_vector< Key, Compare >::rend ( ) const [inline, inherited]

Returns the iterator that marks the end of the ordered vector, when viewed in reverse order.

Definition at line 170 of file ordered_vector.I.

template<class Key , class Compare >
ordered_vector< Key, Compare >::SIZE_TYPE ordered_vector< Key, Compare >::size ( ) const [inline, inherited]

Returns the number of elements in the ordered vector.

Definition at line 203 of file ordered_vector.I.

Referenced by AnimPreloadTable::add_anims_from(), AsyncTaskManager::cleanup(), Multifile::compare_subfile(), TransformBlend::compare_to(), TextureAttrib::complete_pointers(), TexMatrixAttrib::complete_pointers(), RenderEffects::complete_pointers(), Multifile::extract_subfile(), Multifile::extract_subfile_to(), AnimPreloadTable::get_base_frame_rate(), AnimPreloadTable::get_basename(), MayaNodeTree::get_blend_desc(), RenderEffects::get_effect(), SparseArray::get_highest_off_bit(), SparseArray::get_highest_on_bit(), AttribNodeRegistry::get_node(), AttribNodeRegistry::get_node_name(), AttribNodeRegistry::get_node_type(), AnimPreloadTable::get_num_anims(), SparseArray::get_num_bits(), MayaNodeTree::get_num_blend_descs(), RenderEffects::get_num_effects(), AnimPreloadTable::get_num_frames(), AttribNodeRegistry::get_num_nodes(), LightAttrib::get_num_off_lights(), ClipPlaneAttrib::get_num_off_planes(), TextureAttrib::get_num_off_stages(), LightAttrib::get_num_on_lights(), ClipPlaneAttrib::get_num_on_planes(), TexMatrixAttrib::get_num_stages(), Multifile::get_num_subfiles(), SparseArray::get_num_subranges(), AsyncTaskManager::get_num_task_chains(), TransformBlend::get_num_transforms(), GraphicsEngine::get_num_windows(), LightAttrib::get_off_light(), ClipPlaneAttrib::get_off_plane(), TextureAttrib::get_off_stage(), LightAttrib::get_on_light(), ClipPlaneAttrib::get_on_plane(), TexMatrixAttrib::get_stage(), Multifile::get_subfile_internal_length(), Multifile::get_subfile_internal_start(), Multifile::get_subfile_length(), Multifile::get_subfile_name(), Multifile::get_subfile_timestamp(), SparseArray::get_subrange_begin(), SparseArray::get_subrange_end(), AsyncTaskManager::get_task_chain(), TransformBlend::get_transform(), TransformBlend::get_weight(), GraphicsEngine::get_window(), Multifile::is_subfile_compressed(), Multifile::is_subfile_encrypted(), Multifile::open_read_subfile(), AsyncTaskManager::poll(), Multifile::read_subfile(), AnimPreloadTable::remove_anim(), AttribNodeRegistry::remove_node(), Multifile::remove_subfile(), GraphicsEngine::render_frame(), TransformBlend::set_transform(), TransformBlend::set_weight(), AsyncTaskManager::start_threads(), AsyncTaskManager::stop_threads(), AsyncTaskManager::wait_for_tasks(), SparseArray::write_datagram(), TexMatrixAttrib::write_datagram(), RenderEffects::write_datagram(), TransformBlend::write_datagram(), CharacterJoint::write_datagram(), and AnimPreloadTable::write_datagram().

template<class Key , class Compare >
void ov_multiset< Key, Compare >::sort ( ) [inline]
template<class Key , class Compare >
void ordered_vector< Key, Compare >::sort_nonunique ( ) [inline, inherited]

Ensures that the vector is properly sorted after a potentially damaging operation.

This should not normally need to be called, unless the user has written to the vector using the non-const iterators or has called push_back().

Definition at line 665 of file ordered_vector.I.

Referenced by ov_multiset< Key, Compare >::sort().

template<class Key , class Compare >
void ordered_vector< Key, Compare >::sort_unique ( ) [inline, inherited]

Ensures that the vector is properly sorted after a potentially damaging operation.

This should not normally need to be called, unless the user has written to the vector using the non-const iterators or has called push_back().

This flavor of sort also eliminates repeated elements.

Definition at line 647 of file ordered_vector.I.

Referenced by ov_set< Key, Compare >::sort().

template<class Key, class Compare>
void ordered_vector< Key, Compare >::swap ( ordered_vector< Key, Compare > &  other) [inline, inherited]

Exchanges the contents of this vector and the other vector, in constant time (e.g., with a pointer swap).

Definition at line 614 of file ordered_vector.I.

Referenced by GraphicsEngine::remove_all_windows(), and GraphicsEngine::render_frame().

template<class Key , class Compare >
bool ov_multiset< Key, Compare >::verify_list ( ) const [inline]

Maps to verify_list_nonunique().

Definition at line 909 of file ordered_vector.I.


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations