【发布时间】:2011-10-29 09:23:01
【问题描述】:
我有一个std::vector<std::pair<int,std::pair<Bone,std::string> > >
我正在尝试使用 std sort 对其进行排序,并期望它按 int 排序,但我得到了与 sort 调用相关的 21 个错误。
可能出了什么问题?
代码:
std::vector<std::pair<int,std::pair<Bone,std::string> > > tempBones;
std::sort(tempBones.begin(),tempBones.end());
错误:
错误 1 错误 C2784:
'bool std::operator <(const std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem *)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 102 推断出'const std::basic_string<_Elem,_Traits,_Alloc> &'的模板参数错误 2 错误 C2784:
'bool std::operator <(const _Elem *,const std::basic_string<_Elem,_Traits,_Alloc> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 102 推断出'const _Elem *'的模板参数错误 3 错误 C2784:
'bool std::operator <(const std::basic_string<_Elem,_Traits,_Alloc> &,const std::basic_string<_Elem,_Traits,_Alloc> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 102 推断出'const std::basic_string<_Elem,_Traits,_Alloc> &'的模板参数错误 4 错误 C2784:
'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 102 推断出'const std::_Tree<_Traits> &'的模板参数错误 5 错误 C2784:
'bool std::operator <(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 102 推断出'const std::vector<_Ty,_Alloc> &'的模板参数错误 6 错误 C2784:
'bool std::operator <(const std::list<_Ty,_Ax> &,const std::list<_Ty,_Ax> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 102 推断出'const std::list<_Ty,_Ax> &'的模板参数错误 7 错误 C2784:
'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 102 推断出'const std::reverse_iterator<_RanIt> &'的模板参数错误 8 错误 C2784:
'bool std::operator <(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 102 推断出'const std::_Revranit<_RanIt,_Base> &'的模板参数错误 9 错误 C2784:
'bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 102 推断出'const std::pair<_Ty1,_Ty2> &'的模板参数错误 10 错误 C2676: 二进制
'<':'const skl::Bone'未定义此运算符或转换为预定义运算符可接受的类型 c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 10错误 11 错误 C2784:
'bool std::operator <(const std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem *)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 103 推断出'const std::basic_string<_Elem,_Traits,_Alloc> &'的模板参数错误 12 错误 C2784:
'bool std::operator <(const _Elem *,const std::basic_string<_Elem,_Traits,_Alloc> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 103 推断出'const _Elem *'的模板参数错误 13 错误 C2784:
'bool std::operator <(const std::basic_string<_Elem,_Traits,_Alloc> &,const std::basic_string<_Elem,_Traits,_Alloc> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 103 推断出'const std::basic_string<_Elem,_Traits,_Alloc> &'的模板参数错误 14 错误 C2784:
'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 103 推断出'const std::_Tree<_Traits> &'的模板参数错误 15 错误 C2784:
'bool std::operator <(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 103 推断出'const std::vector<_Ty,_Alloc> &'的模板参数错误 16 错误 C2784:
'bool std::operator <(const std::list<_Ty,_Ax> &,const std::list<_Ty,_Ax> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 103 推断出'const std::list<_Ty,_Ax> &'的模板参数错误 17 错误 C2784:
'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 103 推断出'const std::reverse_iterator<_RanIt> &'的模板参数错误 18 错误 C2784:
'bool std::operator <(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 103 推断出'const std::_Revranit<_RanIt,_Base> &'的模板参数错误 19 错误 C2784:
'bool std::operator <(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)': 无法从'const skl::Bone'c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 103 推断出'const std::pair<_Ty1,_Ty2> &'的模板参数错误 20 错误 C2676: 二进制
'<':'const skl::Bone'未定义此运算符或转换为预定义运算符可接受的类型 c:\Program Files\Microsoft Visual Studio 9.0\VC\include\utility 103
【问题讨论】: