我試圖將每個具有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',並且你最後錯誤地放置了''''。在我修復了這兩個之後,它看起來很正常。 – 2013-03-11 02:29:36
感謝您指出這些。我計劃通過一個編譯器來運行這個函數,但被調用了。似乎現在編譯。 – Muscles 2013-03-11 02:56:00