不关心元素顺序时高效删除元素

如果在删除元素时不关心std::vector中元素的顺序,可以使用swap+pop_back删除元素,这样交换和删除相比erase删除元素快速很多

C++
#include <vector>
#include <algorithm>
#include <iostream>

int main() {
	std::vector<int> vec{1,2,3,4,5,6,7};
    std::for_each(vec.begin(), vec.end(), [](const auto& it){std::cout << it << " ";});  // 1 2 3 4 5 6 7
    auto it = std::find(vec.begin(), vec.end(), 5);
    if (it != vec.end()){
        std::swap(*it, vec.back());
        vec.pop_back();
    }

    std::cout << std::endl;
    std::for_each(vec.begin(), vec.end(), [](auto& it){std::cout << it << " ";});  // 1 2 3 4 7 6
}