zoukankan      html  css  js  c++  java
  • STL for_each()

    http://www.cplusplus.com/reference/algorithm/for_each/

    std::move()用于c++11

    http://www.cplusplus.com/reference/utility/move/

    c++98

    // for_each example
    #include <iostream>     // std::cout
    #include <algorithm>    // std::for_each
    #include <vector>       // std::vector
    
    void myfunction (int i) {  // function:
      std::cout << ' ' << i;
    }
    
    struct myclass {           // function object type:
      void operator() (int i) {std::cout << ' ' << i;}
    } myobject;
    
    int main () {
      std::vector<int> myvector;
      myvector.push_back(10);
      myvector.push_back(20);
      myvector.push_back(30);
    
      std::cout << "myvector contains:";
      for_each (myvector.begin(), myvector.end(), myfunction);
      std::cout << '
    ';
    
      // or:
      std::cout << "myvector contains:";
      for_each (myvector.begin(), myvector.end(), myobject);
      std::cout << '
    ';
    
      return 0;
    }
    View Code

    c++11    // Returns fn, as if calling std::move(fn).

    // for_each example
    #include <iostream>     // std::cout
    #include <algorithm>    // std::for_each
    #include <vector>       // std::vector
    
    void myfunction (int i) {  // function:
      std::cout << ' ' << i;
    }
    
    struct myclass {           // function object type:
      void operator() (int i) {std::cout << ' ' << i;}
    } myobject;
    
    int main () {
      std::vector<int> myvector;
      myvector.push_back(10);
      myvector.push_back(20);
      myvector.push_back(30);
    
      std::cout << "myvector contains:";
      for_each (myvector.begin(), myvector.end(), myfunction);
      std::cout << '
    ';
    
      // or:
      std::cout << "myvector contains:";
      for_each (myvector.begin(), myvector.end(), myobject);
      std::cout << '
    ';
    
      return 0;
    }

    Output:

    myvector contains: 10 20 30
    myvector contains: 10 20 30STL ==> move()
    // move example
    #include <utility>      // std::move
    #include <iostream>     // std::cout
    #include <vector>       // std::vector
    #include <string>       // std::string
    
    int main () {
      std::string foo = "foo-string";
      std::string bar = "bar-string";
      std::vector<std::string> myvector;
    
      myvector.push_back (foo);                    // copies
      myvector.push_back (std::move(bar));         // moves
    
      std::cout << "myvector contains:";
      for (std::string& x:myvector) std::cout << ' ' << x;
      std::cout << '
    ';
    
      return 0;
    }
  • 相关阅读:
    CAF(C++ Actor Framework)介绍
    Android C++打印函数调用栈
    80%应聘者都不及格的JS面试题
    二叉树的最近公共祖先--递归解法
    mysql的InnoDB引擎的行记录格式ROW_FORMAT
    Docker安装mysql 集群(pxc方式)及负载均衡实践
    主机ping不通虚拟机,虚拟机可以ping通主机解决方式
    springboot源码解析
    springmvc源码解析
    寻找两个正序数组的中位数
  • 原文地址:https://www.cnblogs.com/scotth/p/3171932.html
Copyright © 2011-2022 走看看