我想出了一个程序
#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;
}
Run Code Online (Sandbox Code Playgroud)
对于这个具体的例子,我的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.
这里发生了什么?
当我从string.h文件中检查声明时,我看到了以下内容:
friend inline void cat(const String&,const SubString&,const String&,String&);
inline friend void cat(const String&,const SubString&,const String&,String&);
Run Code Online (Sandbox Code Playgroud)
他们之间有什么区别?