vector.h

来自「很好的kalman程序。.zip文件包含了所有的用到kalman滤波的库和头文件」· C头文件 代码 · 共 68 行

H
68
字号
#ifndef MEMS_VECTOR_H
#define MEMS_VECTOR_H

#include "Constants.h"

namespace mems
{

class Vector 
{
public:

    typedef unsigned short size_type;

    class iterator
    {
    public:
        iterator();
        Real & operator*();
        iterator & operator++(); // prefix
        const iterator operator++(int); // postfix
        iterator operator+(unsigned short offset); // returns iterator pointing at new offset
        iterator operator-(unsigned short offset);
        
        iterator & operator=(const iterator & iter);
        bool operator==(const iterator & rhs) const;
        bool operator!=(const iterator & rhs) const;

    protected:
        friend class Vector;
        iterator(Vector & vec, unsigned short idx = 0);

    private:
        unsigned short  m_idx;              // current index into Vector
        Vector        * m_vec;
    };

    Vector();
    Vector(unsigned short size);

    unsigned short size() const;
    void push_back(const Real & elem);
    void clear();
    iterator erase(const iterator & iter);
    void resize(unsigned short size);
    void resizeAndZero(unsigned short size);
    Real & operator()(unsigned short idx);
    const Real & operator()(unsigned short idx) const;

    Real & operator[](unsigned short idx);
    const Real & operator[](unsigned short idx) const;

    iterator begin();
    iterator end();

private:

    void zero();

    // increment so can have a 'bogus' value as the last elem
    Real            m_vec[VECTOR_MAXELEMS + 1];
    unsigned short  m_size;
};

} // mems

#endif // MEMS_VECTOR_H

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?