x値を持つ各要素をベクトルの先頭に移動して、x値を持つすべての要素がベクトルの先頭になるようにしようとしていますが、機能していません。私が行ったことを教えてください。間違ってください?
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
template <typename Container, typename Arg>
void move_x(Container& c, Arg x)
{
typename Container::iterator it = find(c.begin(), c.end(), x);
if (it!=c.end()) {
c.insert(c.begin(), *it);
remove (it, c.end(), x);
}
}
int main()
{
int x=1;
vector <int> v{1,2,4,6,7,1,3,1,1,8,9};
move_x(v, x);
for(auto i:v)
cout<<v[i];
return 0;
}
実行するとこの出力が表示されます
411613848811