Added IndexOf support for List.
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
0b6220b2bf
commit
7524c2d61c
|
@ -48,6 +48,16 @@ namespace Arbutils::Collections {
|
||||||
return std::find(_vector.begin(), _vector.end(), value) != _vector.end();
|
return std::find(_vector.begin(), _vector.end(), value) != _vector.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Find the index of the first occurrence of a value in the list, return -1 if none is found.
|
||||||
|
/// \param value The value we want the index for.
|
||||||
|
/// \return The index of the first occurrence of the value in the list, or -1 if none is found.
|
||||||
|
inline size_t IndexOf(ValueT value) const {
|
||||||
|
auto it = std::find(_vector.begin(), _vector.end(), value);
|
||||||
|
if (it == _vector.end())
|
||||||
|
return -1;
|
||||||
|
return std::distance(_vector.begin(), it);
|
||||||
|
}
|
||||||
|
|
||||||
inline void Append(ValueT value) { _vector.push_back(value); }
|
inline void Append(ValueT value) { _vector.push_back(value); }
|
||||||
|
|
||||||
inline void Insert(size_t index, ValueT value) { _vector.insert(index, value); }
|
inline void Insert(size_t index, ValueT value) { _vector.insert(index, value); }
|
||||||
|
@ -59,9 +69,7 @@ namespace Arbutils::Collections {
|
||||||
inline void Resize(size_t size) { _vector.resize(size); }
|
inline void Resize(size_t size) { _vector.resize(size); }
|
||||||
inline void Resize(size_t size, ValueT defaultValue) { _vector.resize(size, defaultValue); }
|
inline void Resize(size_t size, ValueT defaultValue) { _vector.resize(size, defaultValue); }
|
||||||
|
|
||||||
inline void Remove(size_t index){
|
inline void Remove(size_t index) { _vector.erase(_vector.begin() + index); }
|
||||||
_vector.erase(_vector.begin() + index);
|
|
||||||
}
|
|
||||||
|
|
||||||
iterator begin() { return _vector.begin(); }
|
iterator begin() { return _vector.begin(); }
|
||||||
const_iterator begin() const { return _vector.begin(); }
|
const_iterator begin() const { return _vector.begin(); }
|
||||||
|
|
|
@ -60,6 +60,15 @@ TEST_CASE("Create list of bools, assign to it", "[Utilities]") {
|
||||||
CHECK(ls[1]);
|
CHECK(ls[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("Test IndexOf", "[Utilities]") {
|
||||||
|
auto ls = List<int>({5, 200, 1500, -500, 5, 300, -500});
|
||||||
|
CHECK(ls.IndexOf(5) == 0);
|
||||||
|
CHECK(ls.IndexOf(1500) == 2);
|
||||||
|
CHECK(ls.IndexOf(300) == 5);
|
||||||
|
CHECK(ls.IndexOf(684) == -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Reference in New Issue