zoukankan      html  css  js  c++  java
  • (C/C++学习) 39. 记录自己做题经常用到的函数-长更

    一. lower_bound( ) 和 upper_bound( ) 都是利用二分查找的方法在一个排好序的数组中进行查找的。

    在从小到大的排序数组中:

    a. lower_bound( begin,end,num):从数组的begin位置到 end-1 位置二分查找第一个大于或等于num 的数字,找到返回该数字的地址,不存在则返回 end。

        注意:可以通过返回的地址减去起始地址begin, 得到 num 在数组中的下标。

    b. upper_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于num的数字,找到返回该数字的地址,不存在则返回end。

        注意:可以通过返回的地址减去起始地址begin, 得到 num 在数组中的下标。

    二. list::splice实现 list 拼接的功能-将源 list 的内容部分或全部元素删除,并插入到目的 list. 函数有以下三种声明:

    1. void splice ( iterator position, list<T,Allocator>& x );

    2. void splice ( iterator position, list<T,Allocator>& x, iterator it );

    3. void splice ( iterator position, list<T,Allocator>& x, iterator first, iterator last );

    说明:position 是要操作的list对象的迭代器, list& x 为被剪的对象

    对于一:会在 position 后把 list&x 所有的元素到剪接到要操作的list对象
    对于二:只会把 it 的值剪接到要操作的list对象中
    对于三:把 first 到 last 之间的元素剪接到要操作的list对象中

     三. lexicographical_compare(first1, last1,first2, last2, comp) 可以比较由开始和结束迭代器定义的两个序列。它的前两个参数定义了第一个序列,第 3 和第 4 个参数分别是第二个序列的开始和结束迭代器。默认用 < 运算符来比较元素,但在需要时,也可以提供一个实现小于比较的函数对象作为可选的第 5 个参数。如果第一个序列的字典序小于第二个,这个算法会返回 true,否则返回 false。所以,返回 false 表明第一个序列大于或等于第二个序列。序列是逐个元素比较的。第一对不同的对应元素决定了序列的顺序。如果序列的长度不同,而且短序列和长序列的初始元素序列匹配,那么短序列小于长序列。长度相同而且对应元素都相等的两个序列是相等的。空序列总是小于非空序列。

  • 相关阅读:
    RabbitMQ(dotnet基本使用)
    SignalR三种使用方式整理比较
    Asp.Net下SignalR的三种实现方式
    多种单例模式实现及区别
    VS/Xamarin Android开发Follow Me(十九)
    VS/Xamarin Android开发Follow Me(十八)
    比较大小的几种方法
    C# 求Π Π/4=1-1/3+1/5-1/7+......+1/(2*n-3)-1/(2*n-1); (n=2000)
    一步一步剖析Dictionary实现原理
    查看.net frameword版本
  • 原文地址:https://www.cnblogs.com/tuihou/p/13576161.html
Copyright © 2011-2022 走看看