Hey guys I am trying trying to right this javascript code into c++. I am doing quick sort and everything is straight forward minus the last step.
function quickSort(arr)
{
    //base case if the arr is 1 or 0 then return the array
    if(arr.length === 1 || arr.length === 0)
    {
        return arr;
    }
    var pivotIndex = Math.floor(arr.length/2);
    var pivotValue = arr[pivotIndex];
    var before = [];
    var after = [];
    for(var counter = 0; counter < arr.length; counter++)
    {
        if(counter === pivotIndex)
            continue;
        if(pivotValue <= arr[counter])
        {
            before.push(arr[counter])
        }
        else
        {
            after.push(arr[counter])
        }
    }
//this step I am having trouble rewriting in c++
    return quickSort(after).concat(pivotValue).concat(quickSort(before));
}
I am having a hard time rewriting the recursive step in c++. I am not sure how concat 2 vector. I tried using the insert method but I keep getting an error about invalid use of void expression.
vector<int> quickSort(vector<int> arr)
{
    if(arr.size() == 1 || arr.size()  == 0)
    {
        return  arr;
    }
    int pivotIndex = arr.size()/2;
    int pivotValue = arr[pivotIndex];
    vector<int> before;
    vector<int> after;
    //put values in before or after the piv
    for(size_t counter = 0; counter < arr.size(); counter++)
    {
        if(counter == pivotIndex)
            continue;
        if(pivotValue <= arr[counter])
            before.push_back( arr[counter]);
        else
            after.push_back( arr[counter]);
    }
   return //????? not sure how to do this
}
 
     
    