我正在尝试将每个具有 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