みんな! 私はマップコンテナにチャンネルデータのグループを保持しています。そこから個々のチャンネルデータにチャンネル名でアクセスできます。これに関しては、私は単純な関数GetIRChannelData
を書いています(次のコードを見てください)。 compliingときは、声明pusIRChannelData = cit->second();
は何をするエラーC2064:用語は0引数を取る関数に評価されません
error C2064: term does not evaluate to a function taking 0 arguments
すべての機能を読んでエラーが、マップコンテナ内の指定されたチャンネル名/ IDを検索し、一時的なポインタにそれをデータポインタを割り当てる以外の何ものでもありませんthrowed見つかった場合。何が間違っているか教えてください。
const Array2D<unsigned short>* GetIRChannelData(std::string sChannelName) const
{
const Array2D<unsigned short>* pusIRChannelData = NULL;
for (std::map<std::string, Array2D<unsigned short>* >::const_iterator cit = m_usIRDataPool.begin(); cit != m_usIRDataPool.end(); ++cit)
{
std::string sKey = cit->first;
if (sKey == sChannelName)
{
pusIRChannelData = cit->second(); // Error occurred on this line
break;
}
}
return pusIRChannelData;
}
キーを探すすべての要素をループするのではなく、 'std :: map'の' find'メソッドを使用しない特別な理由はありますか? –
補足として、型エイリアスは実際にコードを読みやすくするのに役立ちます: 'typedef std :: map <...> DataPool; for(DataPool :: const_iterator ... '。 –