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

ptr_vector

[szablon klasy] Kontener reprezentujący tablicę wskaźników danego typu.

Składnia

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

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

Opis szczegółowy

Kontener ptr_vector jest odpowiednikiem kontenera » standard C++vector. Istotną różnicą między kontenerami jest fakt, że kontener ptr_vector 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_vector.hpp>
#include <cstdio>

void wypisz( const boost::ptr_vector < int > & v )
{
    printf( "Elementy kontenera (%d):\n", v.size() );
    for( size_t i = 0; i < v.size(); i++ )
         printf( "\n%d\n", v[ i ] );
   
}

int main()
{
    boost::ptr_vector < 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;
}

Linki zewnętrzne