# soa1d_container::accessor and aos1d_container::accessor

Lightweight object provides efficient array subscript [] access to the read or write elements from inside a soa1d_container or aos1d_container. `#include <sdlt/soa1d_container.h>` and `#include <sdlt/aos1d_container.h>`

## Syntax

    template <typename OffsetT> soa1d_container::accessor;
    template <typename OffsetT> aos1d_container::accessor;

## Arguments

`typename OffsetT` | The type offset that will be applied to each operator[] call determined by the type of offset passed into `soa1d_container::access(offset)`/`aos1d_container::access(offset)` which constructs an accessor.

## Description

accessor provides [] operator that returns a proxy object representing an Element inside the Container that can export or import the Primitive's data. Can re-access with an offset to create a new accessor that when accessed at [0] will really be accessing at index corresponding to the embedded offset. Lightweight and meant to be passed by value into functions or lambda closures. Use accessors in place of pointers to access the logical array data.

Member | Description
--- | ---
    accessor();
| Default Constructible
    accessor(const accessor &);
| Copy Constructible
    accessor & operator = (const accessor &);
| Copy Assignable
    const int & get_size_d1() const;
| Returns: Number of elements in the container.
    auto operator [] (int index_d1) const
| Returns: proxy Element representing element at index_d1 in the container..
    template<typename IndexT_D1>
    auto
    operator [] (const IndexT_D1 index_d1);
| When: IndexT_D1 is one of the SDLT defined or generated Index types, Returns: proxy Element representing element at index_d1 in the container.
    auto
    reaccess(const int offset) const;
| Returns: accessor with an integer-based embedded index offset.
    template<int IndexAlignmentT>
    auto
    reaccess(aligned_offset<IndexAlignmentT> offset) const;
| Returns: accessor with an `aligned_offset<IndexAlignmentT>` based embedded index offset.
    template<int fixed_offsetT>
    auto
    reaccess(fixed_offset<fixed_offsetT>) const;
| Returns: accessor with a `fixed_offset<OffsetT>` based embedded index offset.

Parent topic: Accessors