首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

STL中string重载运算符"<"的有关问题

2012-02-21 
STL中string重载运算符的问题我看各类STL的书籍介绍说string重载了运算符 ,但我在编译时却提示未

STL中string重载运算符"<"的问题
我看各类STL的书籍介绍说string重载了运算符 " < ",但我在编译时却提示未声明的标志符,我查了下string的头文件,确实是没有重载 " < "运算符,
这时怎么回事?

如果我要实现str1 <str2的比较   ,如何写代码

[解决办法]
没问题呀,你用的什么编译器?
[解决办法]
肯定不是 < 的错误
再说 <能报标识符错不啊
[解决办法]
肯定你的代码错误
下面的代码摘自string
template <class _CharT, class _Traits, class _Alloc>
inline bool
operator <(const basic_string <_CharT,_Traits,_Alloc> & __x,
const basic_string <_CharT,_Traits,_Alloc> & __y) {
return basic_string <_CharT,_Traits,_Alloc>
::_M_compare(__x.begin(), __x.end(), __y.begin(), __y.end()) < 0;
}

template <class _CharT, class _Traits, class _Alloc>
inline bool
operator <(const _CharT* __s,
const basic_string <_CharT,_Traits,_Alloc> & __y) {
size_t __n = _Traits::length(__s);
return basic_string <_CharT,_Traits,_Alloc>
::_M_compare(__s, __s + __n, __y.begin(), __y.end()) < 0;
}

template <class _CharT, class _Traits, class _Alloc>
inline bool
operator <(const basic_string <_CharT,_Traits,_Alloc> & __x,
const _CharT* __s) {
size_t __n = _Traits::length(__s);
return basic_string <_CharT,_Traits,_Alloc>
::_M_compare(__x.begin(), __x.end(), __s, __s + __n) < 0;
}
[解决办法]
试试在#include <string> 之后加上using std::string;

我怀疑是不是 <操作符没有被名字空间暴露出来

热点排行