mapfind.cpp

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

CPP
63
字号
/* 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 <algorithm>#include <map>using namespace std;/* function object to check the value of a map element */template <class K, class V>class value_equals {  private:    V value;  public:    // constructor (initialize value to compare with)    value_equals (const V& v)     : value(v) {    }    // comparison    bool operator() (pair<const K, V> elem) {        return elem.second == value;    }};int main(){    typedef map<float,float> FloatFloatMap;    FloatFloatMap coll;    FloatFloatMap::iterator pos;    // fill container    coll[1]=7;    coll[2]=4;    coll[3]=2;    coll[4]=3;    coll[5]=6;    coll[6]=1;    coll[7]=3;    // search an element with key 3.0    pos = coll.find(3.0);                     // logarithmic complexity    if (pos != coll.end()) {        cout << pos->first << ": "             << pos->second << endl;    }    // search an element with value 3.0    pos = find_if(coll.begin(),coll.end(),    // linear complexity                  value_equals<float,float>(3.0));    if (pos != coll.end()) {        cout << pos->first << ": "             << pos->second << endl;    }}

⌨️ 快捷键说明

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