zoukankan      html  css  js  c++  java
  • STL 学习代码~

    #include<stdio.h>
    #include<numeric>
    #include<iostream>
    #include<functional>
    #include<algorithm>
    #include<vector>
    using namespace std;
    #define LL long long
    #define nmax 20
    int num[nmax];
    struct node {
    int x;
    };
    struct Add {
    int operator()(int n, node &M) const {
    return n + M.x;
    }
    };
    node Node[nmax];
    vector<int> first, second, third, four;
    int op_increase(int a) {
    return ++a;
    }
    int op_sum(int a, int b) {
    return a + b;
    }
    int main() {
    #ifndef ONLINE_JUDGE
    freopen("data.in", "r", stdin);
    #endif
    int i, k;
    for (i = 0; i < nmax; i++) {
    num[i] = i + 1;
    Node[i].x = i + 1;
    first.push_back((i + 1) * 10);
    }
    second.resize(first.size());
    transform(first.begin(), first.end(), second.begin(), op_increase);
    for (i = 0; i < nmax; i++) {
    cout << first[i] << " ";
    }
    cout << endl;
    for (i = 0; i < nmax; i++) {
    cout << second[i] << " ";
    }
    third.resize(first.size());
    transform(first.begin(), first.end(), second.begin(), third.begin(),
    op_sum);
    for (i = 0; i < nmax; i++) {
    cout << first[i] << " ";
    }
    cout << endl;
    for (i = 0; i < nmax; i++) {
    cout << second[i] << " ";
    }
    cout << endl;
    for (i = 0; i < nmax; i++) {
    cout << third[i] << " ";
    }
    cout << endl;
    four.resize(first.size());
    transform(first.begin(), first.end(), four.begin(),
    bind2nd(modulus<int>(), 6));
    for (i = 0; i < nmax; i++) {
    cout << four[i] << " ";
    }
    cout << endl << accumulate(four.begin(), four.end(), 0) << endl;

    printf("%d %I64d\n", accumulate(num, num + nmax,0),
    accumulate(num, num + nmax,1LL,multiplies<LL>()));
    printf("%d\n", accumulate(Node, Node + nmax, 0,Add()));
    copy(num, num + nmax,ostream_iterator<int>(cout, " "));
    cout << endl;
    vector<int> vec(num, num + nmax);
    k = count_if(vec.begin(), vec.end(), bind1st(greater<int>(), 5));
    printf("%d\n", k);
    k = count_if(vec.begin(), vec.end(), bind2nd(greater<int>(), 5));
    printf("%d\n", k);
    transform(num, num + nmax,num,bind2nd(modulus<int>(), 5));
    for (i = 0; i < nmax; i++) {
    printf("%d ", num[i]);
    }
    printf("\n%d\n", accumulate(num, num + nmax,0));
    return 0;
    }

  • 相关阅读:
    基于API函数的串口通信编程——理解(转)
    如何设置超时参数(串行通讯)
    注册热键——RegisterHotKey
    如何制作OEM包 (转帖)
    CreateThread函数创建线程
    WinCe6.0 播放语音问题
    C语言编写图形程序// http://lcrystal.spaces.live.com/blog/cns!13dfc6235bbfb72c!128.entry
    关于串口编程的读书笔记
    c++中内存管理
    MFC读取TXT文件,写入编辑框
  • 原文地址:https://www.cnblogs.com/xiaoxian1369/p/2200182.html
Copyright © 2011-2022 走看看