removeif.cpp

来自「stl自带源码」· C++ 代码 · 共 47 行

CPP
47
字号
/* The following code example is taken from the book * "The C++ Standard Library - A Tutorial and Reference" * by Nicolai M. Josuttis, Addison-Wesley, 1999 * * (C) Copyright Nicolai M. Josuttis 1999. * Permission to copy, use, modify, sell and distribute this software * is granted provided this copyright notice appears in all copies. * This software is provided "as is" without express or implied * warranty, and with no claim as to its suitability for any purpose. */#include <iostream>#include <list>#include <algorithm>#include "print.hpp"using namespace std;class Nth {    // function object that returns true for the nth call  private:    int nth;       // call for which to return true    int count;     // call counter  public:    Nth (int n) : nth(n), count(0) {    }    bool operator() (int) {        return ++count == nth;    }};int main(){    list<int> coll;    // insert elements from 1 to 9    for (int i=1; i<=9; ++i) {        coll.push_back(i);    }    PRINT_ELEMENTS(coll,"coll:        ");    // remove third element    list<int>::iterator pos;    pos = remove_if(coll.begin(),coll.end(),  // range                    Nth(3));                  // remove criterion    coll.erase(pos,coll.end());    PRINT_ELEMENTS(coll,"nth removed: ");}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?