2015-10-20 54 views
-1

我正在尋找一種快速方法將矢量數組中的某個項目移動到一個位置+或 - 。我希望有一個人可以幫助我。我使用C++。在向量中移動項目的最佳方法

+1

已經在目標位置的物品會發生什麼? – Brian

+0

這個問題幾乎不可能以目前的形式回答。你需要更具體。在目前的形式中,你所希望的最好的答案是這樣的:_給對象賦予一對迭代器'x'和'y'(它們都不指向容器的'end'),交換項目'std :: iter_swap(x,y)'._ –

+0

相信我:有人給你答案不會幫助你成爲程序員。我建議你做一些研究,寫一些代碼,如果你有一個特定的問題,就回來。 – Tas

回答

0

假設你要交換相鄰元素,例如:
依次是:

0 1 2 3 4 

成這樣:

1 0 2 3 4 

,你可以這樣做:

std::swap(v.at(i), v.at(i+1)); 

或在我的例子:

std::swap(v.at(0), v.at(1)); 

P.S.你爲什麼特別要求快速的方式?您是否試圖使bubble sort足夠快以通過more efficient sorting alghorithm的性能測試?如果是這樣,我對你有壞消息:這是不可能的。您必須實施一種更高效的算法,或使用<algorithm>庫中的std::sort

+0

令人驚訝的是,人們總是解除其他人的問題很好地閱讀它們。但是,有2個人用交換功能回答,所以問題不像有些人評價或評論那樣糟糕。有些人在這裏只是爲了讓人不快。 – pixbye

+0

@pixbye,你還沒有提供足夠的信息來清楚你所要求的。人們不得不猜測你想要什麼,人們討厭猜測。理想情況下,我的答案的前半部分(關於將'0 1 2 3 4'變成'1 0 2 3 4')應該包含在您的問題中。 –

+0

對不起,我想其他。要問電影裏面的一個項目,我想我不需要像兒童書中那樣的圖片。我們都可以閱讀和思考。你已經回答了正確的方法。所以你明白了。 因爲你總是得到一個陰霾或一個不好的評價,所以在線詢問人們的事情變得越來越缺陷。無法以正確的方式進行交流。想想看。這個問題很簡單。 – pixbye

相關問題