Function 对引用C++传递的向量对象不工作的函数

Function 对引用C++传递的向量对象不工作的函数,function,c++11,vector,swap,Function,C++11,Vector,Swap,当我试图在函数partitionk中使用swap-in时,我得到了一个错误 错误:请求“&num_list->std::vector::operator[]>std::vector::size_typeendn”中的成员“swap”,它是非类类型“\uu gnu\u cxx::\uu alloc_traits>::value_type{aka int}”\124;` enter code here #include <iostream> #include <vector>

当我试图在函数partitionk中使用swap-in时,我得到了一个错误

错误:请求“&num_list->std::vector::operator[]>std::vector::size_typeendn”中的成员“swap”,它是非类类型“\uu gnu\u cxx::\uu alloc_traits>::value_type{aka int}”\124;`

enter code here

#include <iostream>
#include <vector>
#include <unordered_map>
#include <cstdlib>
using namespace std;

int partitionk(vector<int>& num_list , int start, int endn  ) {
        int pindex = start;
        int rand_num  = rand( ) % endn;
        num_list[endn].swap(num_list[rand_num]);    // getting error

        for (int i = 1 ; i < endn ; i++){
            if ( num_list[i] < num_list[endn] ){
                num_list[i].swap( num_list[pindex] );   // getting error
                pindex += 1;
            }
        }
        num_list[endn].swap(num_list[pindex]);      // getting error
        return pindex;
}

void quick_sort( vector<int>& num_list , int start,  int endn   ){
       if (start >= endn) return ;

       else{
             int index = partitionk(  num_list ,  start, endn  )   ;

              quick_sort( num_list ,  start, index );
             quick_sort( num_list , index+1,  endn  );

       }
}

int main()
{
    vector <int> nums= {4,7,1,3,9,5};
    quick_sort(nums , 0 , nums.size()-1 );

    for (auto i : nums){
        cout << i << " ";
    }

}
使用:

向量成员交换用于交换。使用swap尝试调用向量项的swap成员,即int:这种类型没有swap。

num_list[endn]是一个int,它没有任何成员函数,但您尝试对其调用swap。你想做什么?
std::swap(num_list[endn], num_list[num]];