我想出了一個計劃矢量::擦除(刪除(....))不工作
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> a = {1,2,3,7,1,5,4};
vector<int> b = {6,7,4,3,3,1,7};
a.erase(remove(a.begin(),a.end(),a[0]),a.end());
b.erase(remove(b.begin(),b.end(),b[0]),b.end());
return 1;
}
對於這個具體的例子,我的GNU GDB的Ubuntu指出,在return 1
行:a = {2,3,7,1,5,4}
這是不是預期的(僅刪除一個1
)和b = {7,4,3,3,1}
,這不是預期的。
我的期望是a
和b
應該是a=2,3,7,5,4
和b=7,4,3,3,1,7
。
這是怎麼回事?