C++ Custom Vector Template Class

This is an implementation of a template class for storing data in any type. It includes user-friendly interface with lots of helper abstract functions and also custom iterators.

Member Functions

Function Name Parameters Return Type Description
add T element void Adds given element to end of current vector
clear void Clears the vector
count T element int Returns total count of the element
first T Returns first element in the vector
firstIndexOf T element int Returns first index of the element in the vector
getCapacity int Returns capacity of the vector
getSize int Returns size of the vector
insert T element, int index void Inserts given element to a specific index
includes T element bool Returns if the element exists in the vector
isEmpty bool Returns if the vector is empty
last T Returns last element in the vector
lastIndexOf T element int Returns last index of the element in the vector
pop T element Returns first element in the vector and removes it from the vector
push T element void Inserts the element in first index of the vector
select bool (T) CustomVector Returns a sub-vector with elements in the vector which returns true for given lambda function
sort void Sorts the vector
sort bool(T,T) void Sorts the vector according to the given lambda function
subArray int start,int end CustomVector Returns a sub-vector between given indexes
swap int index1, int index2 void Swaps elements in the given indexes
remove T element void Removes all occurances of the element from the vector
removeIf bool(T) void Removes all elements from the vector which return false from given lambda function
removeIndex int index void Removes the element in the given index
removeRange int start, int end void Removes all elements in the given range of indexes
reverse void Reverses order of the vector

Overloaded Operators

Operator Parameters Return Type Description
<< std::ostream stream, CustomVector element std::ostream Inserts elements of the vector to stream via stream insertion operator
+ CustomVector vector,CustomVector other CustomVector Concats elements of two vectors
CustomVector vector,CustomVector other CustomVector Removes elements of second vector from first vector
^ CustomVector vector,CustomVector other CustomVector Returns an vector which includes intersection of two vectors
== CustomVector vector,CustomVector other bool Returns if two vectors are equal
!= CustomVector vector,CustomVector other bool Returns if two vectors are not equal
[] int index T Returns element in given index
[] {int index1,int index2} CustomVector Returns an sub-vector which includes elements between two indexes

Iterators

This template class comes with its own iterators here and they are all compitable with STL functions such as std::find, std::sort

Function Name Description
begin Returns an iterator which points to start of the vector
end Returns an iterator which points to start of the vector
cbegin Returns an const iterator which points to start of the vector
cend Returns an const iterator which points to start of the vector

Important Note

To use some of listed functions and overloaded operators given T type must support these operations

GitHub

View Github