fixedarray.h

来自「这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数」· C头文件 代码 · 共 114 行

H
114
字号
/* ////////////////////////////////////////////////////////////////////////////                  INTEL CORPORATION PROPRIETARY INFORMATION//     This software is supplied under the terms of a license agreement or//     nondisclosure agreement with Intel Corporation and may not be copied//     or disclosed except in accordance with the terms of that agreement.//          Copyright(c) 2003-2005 Intel Corporation. All Rights Reserved.//////*/#ifndef __FIXEDARRAY_H__#define __FIXEDARRAY_H__#include "fixedbuffer.h"#include "genalg.h"template <class T> class FixedArray : public FixedBuffer<T> {public:    FixedArray(unsigned int size = 0)    : FixedBuffer<T>(size), m_size(size)    {}    FixedArray(const FixedArray &array)    : FixedBuffer<T>(array.m_size), m_size(array.m_size)    {        Copy(array, *this, m_size);    }    FixedArray& operator=(const FixedArray& array)    {        if(this != &array)        {            ReAlloc(array.m_size);            Copy(array, *this, m_size);        }        return *this;    }    void ReAlloc(unsigned int size)    {        m_size = size;        FixedBuffer<T>::ReAlloc(m_size);    }    void Free()    {        FixedBuffer<T>::Free();        m_size = 0;    }    unsigned int Size() const { return m_size; }protected:    unsigned int m_size;};template <class T> class FixedArray2D : public FixedBuffer2D<T> {public:    FixedArray2D() : m_nOfRows(0), m_nOfCols  (0) {}    FixedArray2D(unsigned int nOfRows, unsigned int nOfCols)    : FixedBuffer2D<T>(nOfRows, nOfCols)    , m_nOfRows(nOfRows)    , m_nOfCols(nOfCols)    {}    FixedArray2D(const FixedArray2D &array)    : FixedBuffer2D<T>(array.m_nOfRows, array.m_nOfCols)    , m_nOfRows(array.m_nOfRows)    , m_nOfCols(array.m_nOfCols)    {        for(unsigned int row = 0; row < m_nOfRows; row++)            Copy(array[row], (*this)[row], m_nOfCols);    }    FixedArray2D& operator=(const FixedArray2D& array)    {        if(this != &array)        {            ReAlloc(array.m_nOfRows, array.m_nOfCols);            for(unsigned int row = 0; row < m_nOfRows; row++)                Copy(array[row], (*this)[row], m_nOfCols);        }        return *this;    }    void ReAlloc(unsigned int nOfRows, unsigned int nOfCols)    {        m_nOfRows = nOfRows;        m_nOfCols = nOfCols;        FixedBuffer2D<T>::ReAlloc(nOfRows, nOfCols);    }    void Free()    {        FixedBuffer2D<T>::Free();        m_nOfRows = 0;        m_nOfCols = 0;    }    unsigned int NOfRows() const { return m_nOfRows; }    unsigned int NOfCols() const { return m_nOfCols; }protected:    unsigned int m_nOfRows;    unsigned int m_nOfCols;};#endif // __FIXEDARRAY_H__

⌨️ 快捷键说明

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