zoukankan      html  css  js  c++  java
  • Qt ------ 自定义QVector<T>中的T

    #ifndef FREQUENCYSPECTRUM_H
    #define FREQUENCYSPECTRUM_H
    
    #include <QtCore/QVector>
    
    /**
     * Represents a frequency spectrum as a series of elements, each of which
     * consists of a frequency, an amplitude and a phase.
     */
    class FrequencySpectrum {
    public:
        FrequencySpectrum(int numPoints = 0);
    
        struct Element
        {
            Element()
            :   frequency(0.0), amplitude(0.0), phase(0.0), clipped(false)
            { }
    
            /**
             * Frequency in Hertz
             */
            qreal frequency;
    
            /**
             * Amplitude in range [0.0, 1.0]
             */
            qreal amplitude;
    
            /**
             * Phase in range [0.0, 2*PI]
             */
            qreal phase;
    
            /**
             * Indicates whether value has been clipped during spectrum analysis
             */
            bool clipped;
        };
    
        typedef QVector<Element>::iterator iterator;
        typedef QVector<Element>::const_iterator const_iterator;
    
        void reset();
    
        int count() const;
        Element& operator[](int index);
        const Element& operator[](int index) const;
        iterator begin();
        iterator end();
        const_iterator begin() const;
        const_iterator end() const;
    
    private:
        QVector<Element> m_elements;
    
    };
    
    #endif // FREQUENCYSPECTRUM_H
    #include "frequencyspectrum.h"
    
    FrequencySpectrum::FrequencySpectrum(int numPoints)
        :   m_elements(numPoints)//等于m_elements.resize(numPoints);
    {
    
    }
    
    void FrequencySpectrum::reset()
    {
        iterator i = begin();
        for ( ; i != end(); ++i)
            *i = Element();
    }
    
    int FrequencySpectrum::count() const
    {
        return m_elements.count();
    }
    
    FrequencySpectrum::Element &FrequencySpectrum::operator[](int index)
    {
        return m_elements[index];
    }
    
    const FrequencySpectrum::Element &FrequencySpectrum::operator[](int index) const
    {
        return m_elements[index];
    }
    
    FrequencySpectrum::iterator FrequencySpectrum::begin()
    {
        return m_elements.begin();
    }
    
    FrequencySpectrum::iterator FrequencySpectrum::end()
    {
        return m_elements.end();
    }
    
    FrequencySpectrum::const_iterator FrequencySpectrum::begin() const
    {
        return m_elements.begin();
    }
    
    FrequencySpectrum::const_iterator FrequencySpectrum::end() const
    {
        return m_elements.end();
    }
  • 相关阅读:
    混合 App 打开 H5 调试开关
    国内申请苹果美区ID
    windows鼠标右键文件太多
    已经配置好了的 jmeter + ant 框架
    fiddler的使用:抓包定位、模拟弱网
    jmeter响应数据中文乱码处理
    jmeter设置中文语言
    Jmeter使用CSV Data参数化,中文参数传递过程出现乱码问题
    monkey详解
    Chrome F12 谷歌开发者工具解析
  • 原文地址:https://www.cnblogs.com/god-of-death/p/8569609.html
Copyright © 2011-2022 走看看