lexicographical_compare详解
来源:互联网 发布:软件 系统架构图 编辑:程序博客网 时间:2024/06/04 00:33
lexicographical_compare函数功能:按照字典顺序比较前一区间是否小于后一区间.
template<class _InIt1,
class _InTy,
size_t _InSize,
class _Pr> inline
bool equal(_InIt1 _First1, _InIt1 _Last1,
_InTy (&_First2)[_InSize], _Pr _Pred)
{ // compare [_First1, _Last1) to [First2, ...)
return (_STD equal(_First1, _Last1,
_Array_iterator<_InTy, _InSize>(_First2), _Pred));
}
#endif /* _ITERATOR_DEBUG_LEVEL == 0 */
// TEMPLATE FUNCTION lexicographical_compare
template<class _InIt1,
class _InIt2> inline
bool _Lexicographical_compare(_InIt1 _First1, _InIt1 _Last1,
_InIt2 _First2, _InIt2 _Last2)
{ // order [_First1, _Last1) vs. [First2, Last2)
for (; _First1 != _Last1 && _First2 != _Last2; ++_First1, ++_First2)
if (_DEBUG_LT(*_First1, *_First2))//判断是否*_First1<*_First2
return (true);
else if (*_First2 < *_First1) //*_First1>*_First2
return (false);
//else if *_First2 == *_First
return (_First1 == _Last1 && _First2 != _Last2);
}
另一重载函数不在赘述.
举例:
int main()
{
vector<int> vecInt;
vecInt.push_back( 3 );
vecInt.push_back( 6 );
vecInt.push_back( 5 );
list<int> lstInt;
lstInt.push_back( 3 );
lstInt.push_back( 12 );
lstInt.push_back( 10 );
lstInt.push_back( 6 );
bool bLess = lexicographical_compare(vecInt.begin(),vecInt.end(),lstInt.begin(),lstInt.end() );
system( "pause" );
return 0;
}
需要注意的是,该算法的比较极易出现错误.例如:”111”,”12”.我们认为前者更大,但是实际上是后者更大,原因是长度在此根本不起作用.这类的有string
想要看string更详细的易错问题,请移步至: http://blog.csdn.net/yuanweihuayan/article/details/6641980
- lexicographical_compare
- lexicographical_compare
- lexicographical_compare详解
- std::lexicographical_compare
- STL_Algorithm2: equal, mismatch, lexicographical_compare
- lexicographical_compare的用法
- mismatch和lexicographical_compare
- C++之lexicographical_compare
- 区间的比较1 lexicographical_compare
- 泛型算法系列36:lexicographical_compare()
- find_first_of,adjacent_find,equal,mismatch,lexicographical_compare大杂烩
- STL比较范围(equal, lexicographical_compare, mismatch)
- STL algorithm算法lexicographical_compare(30)
- 非修改性序列之lexicographical_compare
- lexicographical_compare()按字典序比较函数用法示例(字符串排序)
- STL_算法_区间的比较(equal、mismatch、 lexicographical_compare)
- Effective STL 35 Case-insensitive string comparisons via mismatch or lexicographical_compare.
- effective stl 第35条:通过mismatch和lexicographical_compare实现简单的忽略大小写的字符串比较
- poj2823 Sliding Window
- mismatch详解
- Dev C++ 与 ACM/ICPC程序设计在线评判系统
- linux支持大于4G内存
- 巡线车程序(完整版,也是最先的版本)
- lexicographical_compare详解
- 预处理命令详解
- iOS: UI 开发
- copy/copy_backward
- 【iOS-Cocos2d游戏开发之四】独自收集Cocos2d提供的字体!共57种(有对照的字体图)
- 2012.01.31_Chomp公布Android/iOS用户不同搜索习惯
- java连接seversql
- u-boot.lds分析
- Linux操作系统上Lsof命令详解