![](/img/trans.png)
[英]Sorting a std::vector with elements of type pair<int, string>, but in reverse order
[英]Using std::reverse to reverse the order of the first few elements of a vector
如果我有一個
vector<int> vec { 1, 2, 3, 4}
如何使用
std :: reverse
把它變成
vec {2,1,3,4}
您可以將帶有迭代器的reverse
用作這樣的參數:
vector<int> vec { 1, 2, 3, 4};
reverse(vec.begin(), vec.begin()+2);
您實際上不需要使用std::reverse
進行簡單得多的操作。 如果只想交換前兩個元素,請使用:
std::swap (vec[0], vec[1]);
如果您希望以兩個為一組交換元素(最后只剩下一個奇數),則可以使用以下方法:
for (int i = 0, lim = vec.size() - vec.size() % 2; i < lim; i += 2)
std::swap (vec[i], vec[i+1]);
如果你想扭轉這兩個以上要素的載體的部分,這就是我會考慮使用std::reverse
。 您可以通過以下調用反轉向量vec
包含{1, 2, 3, 4, 5}
:
std::reverse (vec.begin(), vec.end() ); // -> {5, 4, 3, 2, 1}
std::reverse (vec.begin(), vec.begin() + 3); // -> {3, 2, 1, 4, 5}
std::reverse (vec.begin() + 1, vec.begin() + 4); // -> {1, 4, 3, 2, 5}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.