2015-05-22 67 views
0

我編譯我的代碼時出現此錯誤,我不明白爲什麼。我在其他方法中使用了相同的迭代,並且它可以工作。錯誤:沒有匹配函數調用to'std :: _ Rb_tree_iterator

src/Stats/Stats.cpp:24:53: error: no matching function for call to'std::_Rb_tree_iterator<std::pair<const int, Onglet> >::_Rb_tree_iterator(std::map<int, Onglet>::const_iterator)' 

該類的統計有astribute std::map <int , Onglet >統計。

這裏是我的代碼:

#include "Stats.hpp" 
#include "./Application.hpp" 
#include "./Utility/Utility.hpp" 

//Constructeur: 
Stats::Stats() 
{} 

//Destructeur: 
Stats::~Stats() 
{} 

/*Dessin*/ 
void Stats::drawOn(sf::RenderTarget& target) const 
{ 
    for(std::map<int,Onglet>::iterator i(stat.begin()); i != stat.end() ; ++i) 
    { 
     int id = (i->first); 
     if(id == identifiantActif) 
     { 
      (i->second).graphe->drawOn(target); 
     } 
    } 
} 


void Stats::setActive(int id) 
{ 
    identifiantActif = id; 
} 

void Stats::reset() 
{ 
    for(std::map<int,Onglet>::iterator i(stat.begin()); i != stat.end() ; ++i) 
    { 
     (i->second).graphe->reset();  
    } 
} 

void Stats::addGraph(int id,std::string const& title, 
        std::vector<std::string> const& series, 
        double min, double max, Vec2d const& size) 
{ 

    for(std::map<int,Onglet>::iterator i(stat.begin()); i != stat.end() ; ++i) 
    { 
     setActive(id); 
     stat[id].graphe.reset(new Graph(series,size,min,max)); 
    } 
} 
+0

不完全清楚怎麼回事沒有更多的信息,但它看起來像你需要使用'常量性'''drawOn'因爲它是一個const函數。 – dwcanillas

+2

您應該在標記爲const –

+1

@DieterLücking的成員函數中使用'std :: map :: const_iterator'這不是評論的答案。 –

回答

0

你應該在一個成員函數中使用std::map<int,Onglet>::const_iterator標記常量 -

相關問題