⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 removing.cpp

📁 Think in C++ 第二版源码
💻 CPP
字号:
//: C21:Removing.cpp

// From Thinking in C++, 2nd Edition

// Available at http://www.BruceEckel.com

// (c) Bruce Eckel 1999

// Copyright notice in Copyright.txt

// The removing algorithms

#include "PrintSequence.h"

#include "Generators.h"

#include <vector>

#include <algorithm>

#include <cctype>

using namespace std;



struct IsUpper {

  bool operator()(char c) {

    return isupper(c);

  }

};



int main() {

  vector<char> v(50);

  generate(v.begin(), v.end(), CharGen());

  print(v, "v", "");

  // Create a set of the characters in v:

  set<char> cs(v.begin(), v.end());

  set<char>::iterator it = cs.begin();

  vector<char>::iterator cit;

  // Step through and remove everything:

  while(it != cs.end()) {

    cit = remove(v.begin(), v.end(), *it);

    cout << *it << "[" << *cit << "] ";

    print(v, "", "");

    it++;

  }

  generate(v.begin(), v.end(), CharGen());

  print(v, "v", "");

  cit = remove_if(v.begin(), v.end(), IsUpper());

  print(v.begin(), cit, "after remove_if", "");

  // Copying versions are not shown for remove

  // and remove_if.

  sort(v.begin(), cit);

  print(v.begin(), cit, "sorted", "");

  vector<char> v2;

  unique_copy(v.begin(), cit, back_inserter(v2));

  print(v2, "unique_copy", "");

  // Same behavior:

  cit = unique(v.begin(), cit, equal_to<char>());

  print(v.begin(), cit, "unique", "");

} ///:~

⌨️ 快捷键说明

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