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
깔끔한 해결책, 두 가지 문제, 당신은'x'를 잡아 내지 못하고 결국';'을 잘못 놓았습니다. 그 두 가지를 고친 후에는 정상적으로 작동하는 것처럼 보입니다. –
그 점을 지적 해 주셔서 감사합니다. 나는 이것을 컴파일러로 실행하려고 계획했지만 멀리 호출되었다. 지금 컴파일하는 것 같습니다. – Muscles