Шаблон в заголовочном файле:
//"remove_copys.h"
template <class In, class X> void remove_copys(In begin, In end, In bk(In), const X& x)
{
In cont;
if (*begin != x)
bk(cont);
++begin;
};
Исходный файл:
#include<vector>
#include<iostream>
#include<string>
#include "remove_copys.h"
using namespace std;
int main() {
int x;
vector<int> vec = { 1, 2, 3, 0, 0, 0, 4 };
vector<int> vec1 = { 4, 0, 2, 3, 4 };
remove_copys(vec.begin(), vec.end(), back_inserter(vec1), 0);
for (vector<int>::iterator it = vec1.begin(); it != vec1.end(); ++it)
cout << *it << endl;
}