c++ stl

STL

  • vector
    • 判断两个vector里面的值相等

vector

判断两个vector里面的值相等

直接使用 vec1 == vec2

vector已经实现了operator这个函数,也就是说它已经重载了这个操作

1
2
3
4
5
6
7
8
template<class _Ty,
class _Alloc> inline
bool operator==(const vector<_Ty, _Alloc>& _Left,
const vector<_Ty, _Alloc>& _Right)
{ // test for vector equality
return (_Left.size() == _Right.size()
&& _STD equal(_Left.begin(), _Left.end(), _Right.begin()));
}

我们可以看得到,首先是判断两个vector的大小是否相等,然后调用std的equal函数来进行判断.

equal函数的实现大概是这个样子的:

1
2
3
4
5
6
...
for ( ; first1 != last1; ++first1, ++first2)
if (*first1 != *first2)
return false;
return true;
...