Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: Piotr DejaVu Szawdyński
Biblioteki C/C++

ptr_list

[szablon klasy] Kontener reprezentujący listę przechowującą wskaźniki danego typu.

Składnia

C/C++
#include <boost/ptr_container/ptr_list.hpp>

namespace boost
{
   
    template
    <
    class T,
    class CloneAllocator = heap_clone_allocator,
    class Allocator = std::allocator < void *>
    >
    class ptr_list
        : public ptr_sequence_adapter < T, std::list < void *, Allocator >, CloneAllocator >
    {
    };
}

Opis szczegółowy

Kontener ptr_list jest odpowiednikiem kontenera » standard C++list. Istotną różnicą między kontenerami jest fakt, że kontener ptr_list przyjmuje wskaźniki na obiekty, zamiast obiektów. Obiekty dodane do kontenera są zwalniane za pomocą operatora
delete
.

Przykład

C/C++
#include <boost/ptr_container/ptr_list.hpp>
#include <cstdio>

void wypisz( const boost::ptr_list < int > & v )
{
    printf( "Elementy kontenera (rozmiar = %d):\n", v.size() );
    for( boost::ptr_list < int >::const_iterator i = v.begin(); i != v.end(); i++ )
         printf( "\t%d\n", * i );
   
}

int main()
{
    boost::ptr_list < int > kontener;
    kontener.push_back( new int( 123 ) );
    kontener.push_back( new int( 345 ) );
    wypisz( kontener );
    kontener.clear(); //Pamięć zaalokowana za pomocą new zostaje zwolniona
    kontener.push_back( new int( 777 ) );
    wypisz( kontener );
    return 0;
}
Standardowe wyjście programu:
Elementy kontenera (rozmiar = 2):
        123
        345
Elementy kontenera (rozmiar = 1):
        777

Linki zewnętrzne