2014-09-08 1 views
0

При использовании вектора TiXmlElement API tinyxml на std :: map визуальная студия дает ошибку времени компиляции. Мой код ..Использование вектора TiXmlElement в std :: map

#include "tinyxml.h" 
#include <vector> 
#include <iostream> 
#include <map> 

using namespace std; 
class childCounter 
{ 
public: 
    childCounter(void); 
    std::map<string,std::vector<TiXmlElement*>> childrenList; 

    int count(const TiXmlElement&,const TiXmlAttribute*); 
    ~childCounter(void); 
}; 


int childCounter::count(const TiXmlElement& ele,const TiXmlAttribute* attr) 
{ 
    int count = 0; 

    std::map<string,std::vector<TiXmlElement*>> childList; 
    std::vector<TiXmlElement*> childVector; 
    TiXmlElement *ele = new TiXmlElement("ChildOne"); 
    childVector.push_back(ele); 
    string name = "entry"; 
    childList[name] = childVector; 

    return count; 
} 

ошибки компиляции являются

Error 1 error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string' c:\program files (x86)\microsoft visual studio 11.0\vc\include\xstddef 180 
Error 2 error C2784: 'bool std::operator <(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)' : could not deduce template argument for 'const std::vector<_Ty,_Alloc> &' from 'const std::string' c:\program files (x86)\microsoft visual studio 11.0\vc\include\xstddef 180 
Error 3 error C2784: 'bool std::operator <(const std::move_iterator<_RanIt> &,const std::move_iterator<_RanIt2> &)' : could not deduce template argument for 'const std::move_iterator<_RanIt> &' from 'const std::string' c:\program files (x86)\microsoft visual studio 11.0\vc\include\xstddef 180 
Error 4 error C2784: 'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'const std::string' c:\program files (x86)\microsoft visual studio 11.0\vc\include\xstddef 180 
Error 5 error C2784: 'bool std::operator <(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)' : could not deduce template argument for 'const std::_Revranit<_RanIt,_Base> &' from 'const std::string' c:\program files (x86)\microsoft visual studio 11.0\vc\include\xstddef 180 

Error 6 error C2784: 'bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)' : could not deduce template argument for 'const std::pair<_Ty1,_Ty2> &' from 'const std::string' c:\program files (x86)\microsoft visual studio 11.0\vc\include\xstddef 180 
Error 7 error C2676: binary '<' : 'const std::string' does not define this operator or a conversion to a type acceptable to the predefined operator c:\program files (x86)\microsoft visual studio 11.0\vc\include\xstddef 180 

Прежде всего я не в состоянии понять, что пошло не так, но я пришел знал, что ошибка с vector<TiXmlElement*>. Пожалуйста, направляйте мне правильное направление. Спасибо.

+1

Несвязанный: я не понимаю, почему 'string' не является пространством имен, а' std :: vector' is. – WhozCraig

ответ

2

отсутствует #include <string>

это ошибка 1: оператор < отсутствует для станда :: строки, так как дерево черта не deducable.

Error 1 error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string' c:\program files (x86)\microsoft visual studio 11.0\vc\include\xstddef 180 
+0

Слишком быстро .. :). Это решило ошибку. – Raki

Смежные вопросы