[英]C++: Swap two elements of two different vectors
std::vector<int> v1 = {1,3,6};
std::vector<int> v2 = {2,4,7};
用v2 [n]交換v1 [m]
而不是復制然后覆蓋兩個元素
我試過了
std::swap(v1.begin() + m, v2.begin() + n);
但這沒用
std::swap
需要引用,而不是迭代器:
std::swap(v1[m], v2[n]);
您對此太想了-您只需要:
std::swap( v1[m], v2[n] );
您當然可以將迭代器與swap
一起使用:
std::swap(*(v1.begin() + m), *(v2.begin() + n));
要么
std::swap(v1[m], v2[n]);
要么
std::swap(v1.at(m), v2.at(n));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.