0
私はリストイテレータポインタと関数へのリストポインタを与えています。しかし、私はエラーを取得する:ポインタの関数を呼び出す渡しリストenterイテレータをポインタとしてC++
error: no matching function for call to ‘SignalGrouper::DoesPeriodExist(std::__cxx11::list<wSignal>*, std::__cxx11::list<wSignal>::iterator&)’
if((DoesPeriodExist(&donePeriods,it2)==false) && it2->dTime < maxPeriod && it2->dTime > minPeriod)
機能:
std::list<std::list<wSignal>> SignalGrouper::groupByPeriod (std::list<wSignal> signals, int secs)
{
std::list<std::list<wSignal>> groupedSignals;
std::list<wSignal> donePeriods;
for (std::list<wSignal>::iterator it1=signals.begin(); it1 != signals.end(); ++it1)
{
if(DoesPeriodExist(&donePeriods,it1)==false) //check if period is already been grouped
{
boost::posix_time::ptime maxPeriod = boost::posix_time::ptime(it1->dTime);
boost::posix_time::ptime minPeriod = boost::posix_time::ptime(it1->dTime);
maxPeriod += boost::posix_time::seconds(secs/2);
minPeriod -= boost::posix_time::seconds(secs/2);
std::list<wSignal> oneSignalPeriod;
for (std::list<wSignal>::iterator it2=signals.begin(); it2 != signals.end(); ++it2)
{
if((DoesPeriodExist(&donePeriods,it2)==false) && it2->dTime < maxPeriod && it2->dTime > minPeriod) //check if period is already been grouped
{
oneSignalPeriod.push_back(*it2);
donePeriods.push_back(*it2);
}
}
groupedSignals.push_back(oneSignalPeriod);
}
}
return groupedSignals;
}
ポインタ機能:
bool SignalGrouper::DoesPeriodExist (std::list<wSignal>* signals, wSignal* s)
{
for (std::list<wSignal>::iterator it1=signals->begin(); it1 != signals->end(); ++it1)
{
if((it1->apNr == s->apNr) && (it1->MAC == s->MAC) && (it1->RSSI == s->RSSI) && (it1->dTime == s->dTime))
{
return true;
}
}
return false;
}
は私が間違って何をやっています。ポインター関数をポインターで使用するにはどうすればよいですか?
どのようにポインタを渡していますか?参照渡しは、構文がずっと簡単になります。 – NathanOliver
エラーとして、*イテレータ*と第2引数として*ポインタ*を渡そうとしています。 –