Biblioteki C/C++
ptr_multiset
[szablon klasy] Kontener reprezentujący zrównoważone drzewo binarne z powtórzeniami, którego elementami są wskaźniki danego typu.Składnia
#include <boost/ptr_container/ptr_set.hpp>
namespace boost
{
template
<
class Key,
class Compare = std::less < Key >,
class CloneAllocator = heap_clone_allocator,
class Allocator = std::allocator < void *>
>
class ptr_multiset
: public ptr_multiset_adapter < Key, std::multiset < void *, void_ptr_indirect_fun < Compare, Key >, Allocator >, CloneAllocator, true >
{
};
}
Opis szczegółowy
Kontener
ptr_multiset reprezentuje zrównoważone drzewo binarne
z powtórzeniami, którego elementami są wskaźniki danego typu. Kontener
ptr_multiset jest odpowiednikiem kontenera
std::multiset. Istotną różnicą między kontenerami jest fakt, że kontener
ptr_multiset przyjmuje wskaźniki na obiekty, zamiast obiektów. Obiekty dodane do kontenera są zwalniane za pomocą operatora
delete
.
Przykład
#include <boost/ptr_container/ptr_set.hpp>
#include <cstdio>
class CLiczba
{
public:
CLiczba( int iLiczba )
: m_iLiczba( iLiczba )
{ printf( "CLiczba(%d)\n", iLiczba ); }
~CLiczba() { printf( "~CLiczba()//m_iLiczba = %d\n", m_iLiczba ); }
operator int() const { return m_iLiczba; };
private:
int m_iLiczba;
};
typedef CLiczba TypeT;
typedef boost::ptr_multiset < TypeT > ContainerT;
void wypisz( const ContainerT & v )
{
printf( "Elementy kontenera (rozmiar = %d):\n", v.size() );
for( ContainerT::const_iterator i = v.begin(); i != v.end(); i++ )
printf( "\t%d (0x%x)\n", * i, &* i );
}
int main()
{
ContainerT kontener;
kontener.insert( new TypeT( 123 ) );
kontener.insert( new TypeT( 345 ) );
kontener.insert( new TypeT( 123 ) );
wypisz( kontener );
kontener.clear();
kontener.insert( new TypeT( 777 ) );
wypisz( kontener );
return 0;
}
Standardowe wyjście programu:
CLiczba(123)
CLiczba(345)
CLiczba(123)
Elementy kontenera (rozmiar = 3):
123 (0x35ea0)
123 (0x339c0)
345 (0x33990)
~CLiczba()//m_iLiczba = 123
~CLiczba()//m_iLiczba = 123
~CLiczba()//m_iLiczba = 345
CLiczba(777)
Elementy kontenera (rozmiar = 1):
777 (0x33950)
~CLiczba()//m_iLiczba = 777
Zagadnienia powiązane
ptr_set | Kontener reprezentujący zrównoważone drzewo binarne bez powtórzeń, którego elementami są wskaźniki danego typu. (szablon klasy) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.