template class cv::Seq

Overview

Template Sequence Class derived from CvSeq

The class provides more convenient access to sequence elements, STL-style operations and iterators. More…

#include <core_c.h>

template <typename _Tp>
class Seq
{
public:
    // typedefs

    typedef SeqIterator<_Tp> const_iterator;
    typedef SeqIterator<_Tp> iterator;

    // fields

    CvSeq* seq;

    // construction

    Seq();
    Seq(const CvSeq* seq);

    Seq(
        MemStorage& storage,
        int headerSize = sizeof(CvSeq)
        );

    // methods

    _Tp&
    back();

    const _Tp&
    back() const;

    SeqIterator<_Tp>
    begin() const;

    int
    channels() const;

    void
    clear();

    void
    copyTo(
        std::vector<_Tp>& vec,
        const Range& range = Range::all()
        ) const;

    int
    depth() const;

    size_t
    elemSize() const;

    bool
    empty() const;

    SeqIterator<_Tp>
    end() const;

    _Tp&
    front();

    const _Tp&
    front() const;

    size_t
    index(const _Tp& elem) const;

    void
    insert(
        int idx,
        const _Tp& elem
        );

    void
    insert(
        int idx,
        const _Tp* elems,
        size_t count
        );

    operator std::vector< _Tp >() const;

    _Tp&
    operator[](int idx);

    const _Tp&
    operator[](int idx) const;

    void
    pop_back();

    void
    pop_back(
        _Tp* elems,
        size_t count
        );

    void
    pop_front();

    void
    pop_front(
        _Tp* elems,
        size_t count
        );

    void
    push_back(const _Tp& elem);

    void
    push_back(
        const _Tp* elems,
        size_t count
        );

    void
    push_front(const _Tp& elem);

    void
    push_front(
        const _Tp* elems,
        size_t count
        );

    void
    remove(int idx);

    void
    remove(const Range& r);

    size_t
    size() const;

    int
    type() const;
};

Detailed Documentation

Template Sequence Class derived from CvSeq

The class provides more convenient access to sequence elements, STL-style operations and iterators.

The class is targeted for simple data types, i.e. no constructors or destructors are called for the sequence elements.

Construction

Seq()

the default constructor

Seq(const CvSeq* seq)

the constructor for wrapping CvSeq structure. The real element type in CvSeq should match _Tp.

Seq(
    MemStorage& storage,
    int headerSize = sizeof(CvSeq)
    )

creates the empty sequence that resides in the specified storage

Methods

_Tp&
back()

returns reference to the last sequence element

const _Tp&
back() const

returns read-only reference to the last sequence element

SeqIterator<_Tp>
begin() const

returns iterator pointing to the beginning of the sequence

int
channels() const

returns the number of channels in each sequence element

void
clear()

removes all the elements from the sequence

void
copyTo(
    std::vector<_Tp>& vec,
    const Range& range = Range::all()
    ) const

copies the whole sequence or the sequence slice to the specified vector

int
depth() const

returns the depth of sequence elements (CV_8U … CV_64F)

size_t
elemSize() const

returns the size of each sequence element

bool
empty() const

returns true iff the sequence contains no elements

SeqIterator<_Tp>
end() const

returns iterator pointing to the element following the last sequence element

_Tp&
front()

returns reference to the first sequence element

const _Tp&
front() const

returns read-only reference to the first sequence element

size_t
index(const _Tp& elem) const

returns index of the specified sequence element

void
insert(
    int idx,
    const _Tp& elem
    )

inserts the specified element to the specified position

void
insert(
    int idx,
    const _Tp* elems,
    size_t count
    )

inserts zero or more elements to the specified position

operator std::vector< _Tp >() const

returns the vector containing all the sequence elements

_Tp&
operator[](int idx)

returns read-write reference to the specified element

const _Tp&
operator[](int idx) const

returns read-only reference to the specified element

void
pop_back()

removes the last element from the sequence

void
pop_back(
    _Tp* elems,
    size_t count
    )

removes zero or more elements from the end of the sequence

void
pop_front()

removes the first element from the sequence

void
pop_front(
    _Tp* elems,
    size_t count
    )

removes zero or more elements from the beginning of the sequence

void
push_back(const _Tp& elem)

appends the specified element to the end of the sequence

void
push_back(
    const _Tp* elems,
    size_t count
    )

appends zero or more elements to the end of the sequence

void
push_front(const _Tp& elem)

appends the specified element to the front of the sequence

void
push_front(
    const _Tp* elems,
    size_t count
    )

appends zero or more elements to the front of the sequence

void
remove(int idx)

removes element at the specified position

void
remove(const Range& r)

removes the specified subsequence

size_t
size() const

returns the number of elements in the sequence

int
type() const

returns the type of sequence elements (CV_8UC1 … CV_64FC(CV_CN_MAX)…)