参数传入有问题,在程序最后一句,如何解决

问题遇到的现象和发生背景

leetcode代码本地化,在控制台运行时出现

"resource": "/x:/data-struct/leet-code/rookie-brush-force-buckle/合并两个有序数组.cpp",
    "owner": "C/C++",
    "code": "349",
    "severity": 8,
    "message": "没有与这些操作数匹配的 \"<<\" 运算符 -- 操作数类型为:  std::ostream << void",
    "source": "C/C++",
    "startLineNumber": 21,
    "startColumn": 9,
    "endLineNumber": 21,
    "endColumn": 9
}]

问题相关代码,请勿粘贴截图
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        for(int i=0;i!=n;++i)
        {
            nums1[m+i]=nums2[i];//直接合并数组,然后开始排序

        }
        sort(nums1.begin(),nums1.end());

    }
};
int main(){
    vector<int> nums1={1,2,3,4,5};
    vector<int> nums2={4,5,2,6};
    Solution s;
    cout<<s.merge(int nums1,int nums2)<<endl;
}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class Solution {
public:
    vector<int> merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        for (int i = 0; i != n; ++i)
        {
            nums1[m + i] = nums2[i];//直接合并数组,然后开始排序

        }
        sort(nums1.begin(), nums1.end());
        return nums1;
    }
};
int main() {
    vector<int> nums1 = { 1,2,3,4,5,0,0,0,0 };
    vector<int> nums2 = { 4,5,2,6 };
    Solution s;
    vector<int> nums3 = s.merge(nums1, 5, nums2, 4);
    for (int i = 0; i < 9; i++)
    {
        cout << nums3[i] << endl;
    }
}

merge没有返回值,不能直接输出


#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Solution
{
public:
    void merge(vector<int> &nums1, int m, vector<int> &nums2, int n)
    {
        for (int i = 0; i < n; ++i)
        {

            nums1.push_back(nums2.at(i)); //直接合并数组,然后开始排序
        }
        sort(nums1.begin(), nums1.end());
    }
};
int main()
{
    vector<int> nums1 = {1, 2, 3, 4, 5};
    vector<int> nums2 = {4, 5, 2, 6};
    Solution s;
    s.merge(nums1, nums1.size(), nums2, nums2.size());
    for(int i = 0;i < nums1.size();i++){
        cout << nums1.at(i) << " ";
    }
    return 0;
}