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));
}
}
不完全清楚怎麼回事沒有更多的信息,但它看起來像你需要使用'常量性'''drawOn'因爲它是一個const函數。 – dwcanillas
您應該在標記爲const –
@DieterLücking的成員函數中使用'std :: map :: const_iterator'這不是評論的答案。 –