Methoden einer Klasse in einem Vektor aufrufen



  • Hallo zusammen

    Folgendes Code Snippet funktioniert einwandfrei, ist aber in einem Loop eher langsam

    std::vector<LEDFader*> m_LED;
    
    for (int i_ = 0; i_ < Anzahl_; i_++) {
       m_LED.push_back(new LEDFader(BaseChannel_ + i_));
    };
    
    t_ = 0;
    for (vector<LEDFader*>::const_iterator it = m_LED.begin(); it != m_LED.end(); it++) {
    	if (t_ == m_Step) {
    		if ((*it)->isOn() == false) {
    			(*it)->on();
    		}
    		else {
    			(*it)->off();
    		};
    	};
    	t_++;
    };
    

    Ich wollte das nun wie folgt kürzen

    std::vector<LEDFader*>::iterator ptr_ = m_LED.begin();
    (*ptr_ + m_Step)->on();
    

    Ich erhalte aber einen Compiler Error

    Blinker.cpp: 367:34: error:   crosses initialization of 'LEDFader** ptr_
     std*: vector<LEDFader*>::iterator ptr_ = m_LED.begin()
    Error compiling project sources
    

    Wie kann ich direkt ein Element im Vektor erreichen und dessen Methoden aufrufen?

    Gruss
    Andy



  • m_LED[m_Step]->on();
    


  • manni66 schrieb:

    m_LED[m_Step]->on();
    

    Danke
    Andy


Anmelden zum Antworten