Ok, I used some of functions in the vector container library, a lambda function and the std::less function. The replies have been helpful.
There is a lot of syntax to learn in C++, that's for sure.
Code:
#include <vector>#include <cstdlib>
#include <ctime>
#include <algorithm>
auto isLhsLessRhsFunc = [](auto a, auto b) { return a < b; };
template <typename T>
void printContainer(T a)
{
for(auto it = a.begin(); it != a.end(); ++it)
{
std::cout << *it << '\n';
}
}
int main()
{
std::vector<int> testVec(10);
std::vector<int> testVecToSwap{5};
std::cout << "Size of vec: " << testVec.size() << std::endl;
std::srand(std::time(0)); // use current time as seed for random generator
for (auto it = testVec.begin(); it != testVec.end(); ++it)
{
*it = std::rand();
}
std::cout << "Vec Original content" << std::endl;
printContainer(testVec);
std::cout << "Size of vec: " << testVec.size() << std::endl;
std::cout << "Max Size of vec: " << testVec.max_size() << std::endl;
std::cout << "Capacity of vec: " << testVec.capacity() << std::endl;
std::sort(testVec.begin(), testVec.end(), isLhsLessRhsFunc);
std::cout << "Vec Sorted content" << std::endl;
printContainer(testVec);
std::random_shuffle(testVec.begin(), testVec.end());
std::cout << "Vec Random content" << std::endl;
printContainer(testVec);
std::sort(testVec.begin(), testVec.end(), std::less<>());
std::cout << "Vec Sorted content" << std::endl;
printContainer(testVec);
testVec.insert(testVec.begin(), 1);
std::cout << "Vec Inserted content" << std::endl;
printContainer(testVec);
testVec.erase(testVec.begin());
std::cout << "Vec Erased content" << std::endl;
printContainer(testVec);
testVec.pop_back();
std::cout << "Vec popback" << std::endl;
printContainer(testVec);
testVec.swap(testVecToSwap);
std::cout << "Vec swap: testVec" << std::endl;
printContainer(testVec);
std::cout << "Vec swap: testVecToSwap" << std::endl;
printContainer(testVecToSwap);
testVec.erase(testVec.begin(), testVec.end());
std::cout << "Vec All Erased content" << std::endl;
printContainer(testVec);
return 0;
}