zoukankan      html  css  js  c++  java
  • 泛型函数

      泛型算法 可以理解为方便容器使用的一些接口。

      大部分算法都放在algorithm中,而泛型算法放在 numeric 头文件中。泛型算法主要包括只读算法、写容器算法和重新排序算法,与迭代器联系紧密。

      只读算法:

    1 int num = accumulate(vec.begin(),vec.end(),3);//前两个为求和的范围,第三个为和的初始值
    2 
    3 //equal 用于确定两个算法是否保存相同的值
    4 equal(vec1.begin(),vec1.end(),vec2.begin());//equal的一个基本假定:第二个序列至少比第一个长

      写容器算法:

     1 fill(iter1, iter2, x);//将iter1、iter2之间的数重置为x
     2 
     3 fill_n(iter, n, x);//从iter开始的n个数重置为x
     4 
     5 //back_insert 插入迭代器
     6 fill_n(back_insert(vec), n, x);//在vec后添加n个x
     7 
     8 copy(vec1.begin(), vec1.end(), vec2);//将vec1的内容拷贝到vec2,拷贝的目的序列大小不必输入序列小
     9 
    10 replace(vec.begin(), vec.end(), m, n);//将范围内m替换为n
    11 
    12 replace_copy(vec.begin(), vec.end(), back_insert(vec1), m, n);//vec不变,vec2中插入一份替换后的拷贝值

      重排算法:

    1 //先排好序后,将重复的放在最后边,然后删除
    2 
    3 sort(words.begin(), words.end()); 
    4 
    5 vector<string>::iterator end_unique =  unique(words.begin(), words.end()); 
    6 
    7 words.erase(end_unique, words.end());

      谓词:sort中自己定义的第三项比较函数,谓之谓词。

      lambda表达式:貌似很重要,没细看,用到再补充。

      

      迭代器:

        插入迭代器,back_inserter、front_inserter、inserter;

        流迭代器,istream_iterator、ostream_iterator;

        反向迭代器,forward_list、rbegin、rend、crbegin、crend,从尾元素向首元素反向移动, ++it/--it;

        移动迭代器,make_move_iterator。

  • 相关阅读:
    SQL优化值-exists
    Oracle执行计划详细讲解
    SpringBoot配置加解密工具之Jasypt
    升级Spring Boot 2.0后RelaxedPropertyResolver不可用的解决方案
    Spring, SpringBoot之占位符源码解析
    springboot启动原理深度解析
    Java SPI技术深度解读
    [VCSA7]添加共享磁盘
    [VCSA7]MacOS部署VCSA7
    [Oracle]查看数据库磁盘空间
  • 原文地址:https://www.cnblogs.com/kbe317/p/4370404.html
Copyright © 2011-2022 走看看