Add trivial wxVectorContains() helper
This is nicer than using std::find() when only a test for presence is required.
This commit is contained in:
@@ -26,6 +26,12 @@ inline void wxVectorSort(wxVector<T>& v)
|
|||||||
std::sort(v.begin(), v.end());
|
std::sort(v.begin(), v.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline bool wxVectorContains(const wxVector<T>& v, const T& obj)
|
||||||
|
{
|
||||||
|
return std::find(v.begin(), v.end(), obj) != v.end();
|
||||||
|
}
|
||||||
|
|
||||||
#else // !wxUSE_STD_CONTAINERS
|
#else // !wxUSE_STD_CONTAINERS
|
||||||
|
|
||||||
#include "wx/scopeguard.h"
|
#include "wx/scopeguard.h"
|
||||||
@@ -688,7 +694,17 @@ void wxVectorSort(wxVector<T>& v)
|
|||||||
wxPrivate::wxVectorComparator<T>::Compare, NULL);
|
wxPrivate::wxVectorComparator<T>::Compare, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline bool wxVectorContains(const wxVector<T>& v, const T& obj)
|
||||||
|
{
|
||||||
|
for ( size_t n = 0; n < v.size(); ++n )
|
||||||
|
{
|
||||||
|
if ( v[n] == obj )
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS
|
#endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS
|
||||||
|
|
||||||
|
@@ -307,3 +307,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void wxVectorSort(wxVector<T>& v);
|
void wxVectorSort(wxVector<T>& v);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns true if the vector contains the given value.
|
||||||
|
|
||||||
|
This is just a trivial wrapper around std::find().
|
||||||
|
|
||||||
|
@since 3.1.5
|
||||||
|
*/
|
||||||
|
template<typename T>
|
||||||
|
bool wxVectorContains(const wxVector<T>& v, const T& value);
|
||||||
|
@@ -288,6 +288,22 @@ TEST_CASE("wxVector::Sort", "[vector][sort]")
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("wxVector::Contains", "[vector][contains]")
|
||||||
|
{
|
||||||
|
wxVector<int> v;
|
||||||
|
CHECK( !wxVectorContains(v, 0) );
|
||||||
|
|
||||||
|
v.push_back(3);
|
||||||
|
CHECK( wxVectorContains(v, 3) );
|
||||||
|
|
||||||
|
v.push_back(2);
|
||||||
|
v.push_back(3);
|
||||||
|
|
||||||
|
CHECK( wxVectorContains(v, 2) );
|
||||||
|
CHECK( wxVectorContains(v, 3) );
|
||||||
|
CHECK( !wxVectorContains(v, 1) );
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE("wxVector::operator==", "[vector][compare]")
|
TEST_CASE("wxVector::operator==", "[vector][compare]")
|
||||||
{
|
{
|
||||||
wxVector<wxString> v1, v2;
|
wxVector<wxString> v1, v2;
|
||||||
|
Reference in New Issue
Block a user