关闭

STL —— for_each与仿函数、函数指针

标签: eachincludeclass
1071人阅读 评论(0) 收藏 举报
分类:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

class PrintInt
{
public:
    void operator() (int elem) const
    {
        cout << elem << '\t';
    }
};

class PrintInt2
{
public:
    PrintInt2(int x)
        : m_x(x)
    { }

    void operator() (int elem) const
    {
        cout << elem + m_x << '\t';
    }

private:
    int m_x;
};

typedef void (*op)(int &elem);
void Func(int &elem)
{
    cout << 2*elem << '\t';
}

int main(void)
{
    vector<int> coll;
    op p = Func;

    for (int i=1; i<=9; i++)
    {
        coll.push_back(i);
    }

    for_each(coll.begin(), coll.end(), PrintInt());
    cout << endl;

    for_each(coll.begin(), coll.end(), PrintInt2(10));
    cout << endl;
    
    for_each(coll.begin(), coll.end(), Func);
    cout << endl;
    
    for_each(coll.begin(), coll.end(), p);
    cout << endl;
    
    return 0;
}

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

浅析STL 谓词 + 仿函数 + 函数指针(c)

一:起因 (0)提到C++ STL,首先被人想到的是它的三大组件:Containers(容器), Iterators(迭代器), Algorithms(算法)。容器为用户提供了常用的数据结构(如,ve...
  • u010700335
  • u010700335
  • 2015-01-30 20:57
  • 2255

STL的仿函数 和函数指针传参

C_age.h //在C语言时代,要将函数当做参数传递,唯有通过函数指针 //以下是用函数指针实现参数传递的示例 # include # include using namespace std; ...
  • renchunlin66
  • renchunlin66
  • 2016-05-21 22:27
  • 215

STL中的仿函数

仿函数是行为类似函数的类或结构体,类或结构体重载了operator(),它比函数指针更加灵活易用。
  • KangRoger
  • KangRoger
  • 2014-08-19 14:37
  • 4400

STL:从for_each到函数对象再到bind函数

这篇讲得实在太好了,忍不住转啦 转自:http://www.cnblogs.com/Purple_Xiapei/archive/2012/05/27/2520477.html Abstract...
  • ylf13
  • ylf13
  • 2014-03-06 18:23
  • 1208

STL学习_仿函数篇

STL学习_仿函数篇 简介仿函数,实质是函数对象,是一种具有函数特质的对象。对调用者,它可以像函数一样地被调用;对被调用者,它可以以对象所定义的function call operator扮演函数的实...
  • yzhang6_10
  • yzhang6_10
  • 2016-05-02 17:58
  • 2017

STL源码学习——仿函数和配接器

仿函数 仿函数又称函数对象,它本质上是 一种具有函数特质的对象,它 重载了operator()运算符,我们可以像使用函数一样使用该对象。 比如: template class T> stru...
  • jiange_zh
  • jiange_zh
  • 2016-03-06 13:44
  • 1724

【C++ STL应用与实现】26: 如何使用std::for_each以及基于范围的for循环 (since C++11)

本文总结了STL算法中for_each, for_each算法很常用,以致于C++11定义了一个新的语法: `range based for loop`, 也就是基于范围的for循环,直接在语法层面把...
  • elloop
  • elloop
  • 2015-12-23 00:25
  • 9126

STL之仿函数排序(1)

在逐步深入对STL库的研究过程中,接触到很多参数是函数指针形式。例如在for_each,sort等算法中,对内置类型可以直接使用。当我们想要以自己的方式去实现时,又改如何去做呢?   首先,来看看其...
  • u013184159
  • u013184159
  • 2016-04-23 13:41
  • 293

STL Sort的五种使用示例

Sort是一种高效的排序算法,常使用的五种示例如下。 示例代码采用编译器vs2012,任何一款支持c++11标准的编译器都可以运行。包含头文件#include #include #include...
  • segen_jaa
  • segen_jaa
  • 2016-04-14 21:28
  • 1324

浅谈:函数指针、仿函数和函数适配…

一,仿函数是什么 前几天写了篇博客——浅谈函数指针,主要讲我对函数指针的理解和应用经验。今天,翻看了《C++Primer Plus》第16章“函数对象”这一节,发现C++中还有比函数指针更高层次的抽象...
  • Sagittarius_Warrior
  • Sagittarius_Warrior
  • 2015-11-25 09:43
  • 474
    个人资料
    • 访问:662167次
    • 积分:9722
    • 等级:
    • 排名:第2131名
    • 原创:315篇
    • 转载:41篇
    • 译文:0篇
    • 评论:112条
    文章分类