lambda表达式使用错误

这个lambda表达式和copy里用inserter那里(注释里的)好像都有错,不知道该怎么改

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main() {
    vector<int> ivec{ 1, 1, 3, 4, 4, 5, 5, 5, 7, 9 };
    vector<int> ivec1, ivec2, ivec3;
    copy(ivec.begin(), ivec.end(), back_inserter(ivec1));
    copy(ivec.begin(), ivec.end(), front_inserter(ivec2));
    /*copy(ivec.begin(), ivec.end(), inserter(ivec3, ivec3.begin()));*/
    for_each(ivec1.begin(), ivec1.end(), [](int num) {cout << num << " "; });
    cout << endl;
    for_each(ivec2.begin(), ivec1.end(), [](int num) {cout << num << " "; });
    cout << endl;
    /*for_each(ivec3.begin(), ivec1.end(), [](int num) {cout << num << " "; });*/
}