小编Mad*_*adi的帖子

vector :: erase(remove(....))无法正常工作

我想出了一个程序

#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,4b=7,4,3,3,1,7.

这里发生了什么?

c++ vector erase

24
推荐指数
1
解决办法
980
查看次数

`inline friend ......`函数和`friend inline .....'函数有什么区别?

当我从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)

他们之间有什么区别?

c++ inline friend

-1
推荐指数
1
解决办法
3443
查看次数

标签 统计

c++ ×2

erase ×1

friend ×1

inline ×1

vector ×1