C++ 按成员元素从向量中删除元素

C++ 按成员元素从向量中删除元素,c++,vector,member,C++,Vector,Member,尝试实现文件系统我有3个类: BaseFile-抽象类。每个都有一个名字 文件-从BaseFile继承。每个文件都有一个大小 目录-从基本文件继承。持有: vector<Base File*> children; 向量子; 我正在尝试构建一个函数,该函数使用名称作为可比名称从目录中删除特定文件: for (decltype(children.size()) i = 0; i < children.size(); ++i) { if(children[i]->g

尝试实现文件系统我有3个类:

  • BaseFile-抽象类。每个都有一个名字
  • 文件-从BaseFile继承。每个文件都有一个大小
  • 目录-从基本文件继承。持有:

    vector<Base File*> children;
    
    向量子;
    
  • 我正在尝试构建一个函数,该函数使用名称作为可比名称从目录中删除特定文件:

    for (decltype(children.size()) i = 0; i < children.size(); ++i) {
        if(children[i]->getName() == name) {
            cout << "Same name" << endl;
        }
        else {
            cout << "not found" << endl;
        }
    }
    
    for(decltype(children.size())i=0;igetName()==name){
    cout您可以使用:

    您可以使用:


    在何处使用/放置此函数?
    void Directory::removeFile(字符串名称){children.erase(std::remove_if(std::begin(children),std::end(children),[&name](const BaseFile*x){return x->getName()==name;}),std::end(children));我可以在何处使用/放置此函数?
    void Directory::removeFile(字符串名称){children.erase(std::remove_if(std::begin(children),std::end(children),[&name](const BaseFile*x){return x->getName()==name;}),std::end(children));cout
    
    children.erase(
        std::remove_if(
            std::begin(children), 
            std::end(children), 
            [&name](const BaseFile* x){ return x->getName() == name; }
        ),
        std::end(children)
    );