wordcount.cpp

来自「希望我提供的代码对大家有帮助」· C++ 代码 · 共 41 行

CPP
41
字号
//: C20:WordCount.cpp

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

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

// (c) Bruce Eckel 1999

// Copyright notice in Copyright.txt

//{L} StreamTokenizer

// Count occurrences of words using a map

#include "StreamTokenizer.h"

#include "../require.h"

#include <string>

#include <map>

#include <iostream>

#include <fstream>

using namespace std;



class Count {

  int i;

public:

  Count() : i(0) {}

  void operator++(int) { i++; } // Post-increment  

  int& val() { return i; }

};



typedef map<string, Count> WordMap;

typedef WordMap::iterator WMIter;



int main(int argc, char* argv[]) {

  requireArgs(argc, 1);

  ifstream in(argv[1]);

  assure(in, argv[1]);

  StreamTokenizer words(in);

  WordMap wordmap;

  string word;

  while((word = words.next()).size() != 0)

    wordmap[word]++;

  for(WMIter w = wordmap.begin(); 

      w != wordmap.end(); w++)

    cout << (*w).first << ": "

      << (*w).second.val() << endl;

} ///:~

⌨️ 快捷键说明

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