Add wxVector::operator==() and !=()

Make this class more consistent with std::vector<>.
This commit is contained in:
Vadim Zeitlin
2017-11-18 16:28:22 +01:00
parent aef4edb969
commit 5669e8dbe9
3 changed files with 50 additions and 0 deletions

View File

@@ -368,6 +368,25 @@ public:
return *this; return *this;
} }
bool operator==(const wxVector& vb) const
{
if ( vb.m_size != m_size )
return false;
for ( size_type i = 0; i < m_size; i++ )
{
if ( vb.m_values[i] != m_values[i] )
return false;
}
return true;
}
bool operator!=(const wxVector& vb) const
{
return !(*this == vb);
}
void push_back(const value_type& v) void push_back(const value_type& v)
{ {
reserve(size() + 1); reserve(size() + 1);

View File

@@ -199,6 +199,20 @@ public:
*/ */
wxVector& operator=(const wxVector& vb); wxVector& operator=(const wxVector& vb);
/**
Equality operator.
@since 3.1.1
*/
wxVector& operator==(const wxVector& vb) const;
/**
Inequality operator.
@since 3.1.1
*/
wxVector& operator!=(const wxVector& vb) const;
/** /**
Returns item at position @a idx. Returns item at position @a idx.
*/ */

View File

@@ -314,3 +314,20 @@ void VectorsTestCase::Sort()
CPPUNIT_ASSERT( v[idx-1] <= v[idx] ); CPPUNIT_ASSERT( v[idx-1] <= v[idx] );
} }
} }
TEST_CASE("wxVector::operator==", "[vector][compare]")
{
wxVector<wxString> v1, v2;
CHECK( v1 == v2 );
CHECK( !(v1 != v2) );
v1.push_back("foo");
CHECK( v1 != v2 );
v2.push_back("foo");
CHECK( v1 == v2 );
v1.push_back("bar");
v2.push_back("baz");
CHECK( v1 != v2 );
}