私はコンテナ(マップ、セット、ベクトル、リスト)と配列を同じ方法でループしようとしています。ここで コードです:配列と同じ方法でループします
template<typename TYPE>
void AddXmlOfContAttribute(TYPE *it)
{
m_ss<<"<SingleNode ";
AddXmlAttribute("Value" , *it);
m_ss<<"/>\n";
}
template<typename TYPE1,typename TYPE2>
void AddXmlOfContAttribute(std::pair<TYPE1,TYPE2> tpair)
{
m_ss<<"<MapNode ";
AddXmlAttribute("key" , tpair->first);
AddXmlAttribute("Value" , tpair->second);
m_ss<<"/>\n";
}
template<typename TYPE>
void AddContainerToXml(std::string str, TYPE it_begin , TYPE it_end)
{
if(it_begin != it_end)
{
m_ss<<"<"<<str<<">\n";
//std::for_each(it_begin , it_end, AddXmlOfContAttribute);
for(; it_begin != it_end ; it_begin++)
AddXmlOfContAttribute(it_begin);
m_ss<<"</"<<str<<">\n";
}
}
私は次のエラーを取得する:
In member function ‘void AddElementToBackupFileFunctor::AddContainerToXml(CrString, TYPE, TYPE) [with TYPE = std::_Rb_tree_const_iterator >]’ instantiated from here error: no matching function for call to
AddElementToBackupFileFunctor::AddXmlOfContAttribute(std::_Rb_tree_const_iterator >&)’
iは、通常のループでそれをどのように行うのですか? ボーナスに関する質問:for_eachループではどうすればよいですか?
ここで、マップ関数の呼び出しはどうですか? TYPE&?でも電話することはできますか? – DavidBobo
マップ機能は何ですか? –
AddXmlOfContAttribute(std :: pair tpair) –
DavidBobo