你能“交换”C++ std 向量的切片吗?

bob*_*nto 6 c++ stdvector

如果我有两个 C++ 向量:

vector<int> a(5) {1,2,3,4,5};
vector<int> b(5) {6,7,8,9,10};
Run Code Online (Sandbox Code Playgroud)

有没有一种单行方法可以使用交换方法来交换 a 和 b 的切片?就像是

swap(a[something ... something], b[something ... something]);
Run Code Online (Sandbox Code Playgroud)

给予,例如

a等于{1,9,10,4,5}b等于{6,7,8,2,3}

Nel*_*eal 9

std::swap_ranges

std::swap_ranges(a.begin()+1, a.begin()+3, b.begin()+3);
Run Code Online (Sandbox Code Playgroud)

演示