0

完全如主题中所述:我可以在 C++ 中按>,比较字符串吗?<我没有收到任何错误,但不确定我是否总是能得到好的结果?

string a = "aabbsd", b= "bsdds";
cout<<(a<b);

结果只是运气?

4

2 回答 2

3

是的你可以。没有错。唯一需要注意的是,操作的复杂性是线性的。

于 2013-04-28T17:59:06.500 回答
1

这将触发字典比较。从cppreference

operator==,!=,<,<=,>,>=(std::basic_string)
C++  Strings library std::basic_string   

template< class T, class Alloc >
bool operator==( basic_string<T,Alloc>& lhs, basic_string<T,Alloc>& rhs );
(1) 

template< class T, class Alloc >
bool operator!=( basic_string<T,Alloc>& lhs, basic_string<T,Alloc>& rhs );
(2) 

template< class T, class Alloc >
bool operator<( basic_string<T,Alloc>& lhs, basic_string<T,Alloc>& rhs );
(3) 

template< class T, class Alloc >
bool operator<=( basic_string<T,Alloc>& lhs, basic_string<T,Alloc>& rhs );
(4) 

template< class T, class Alloc >
bool operator>( basic_string<T,Alloc>& lhs, basic_string<T,Alloc>& rhs );
(5) 

template< class T, class Alloc >
bool operator>=( basic_string<T,Alloc>& lhs, basic_string<T,Alloc>& rhs );
(6) 

比较两个字符串的内容。
1-2) 检查 lhs 和 rhs 的内容是否相等,即 lhs.size() == rhs.size() 并且 lhs 中的每个字符在 rhs 中的相同位置都有相同的字符。
3-6) 按字典顺序比较 lhs 和 rhs 的内容。比较由等效于 std::lexicographical_compare 的函数执行。

于 2013-04-28T18:02:03.590 回答