簡體   English   中英

使用std :: reverse反轉向量前幾個元素的順序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM