c语言常用库函数(含详细用法),c语言数学库函数

  c语言常用库函数(含详细用法),c语言数学库函数

  Yyds干货库存

  写在前面:该系列文章旨在短时间内复习C/C语法中的重点和易错点,巩固算法竞赛和问题写作过程中常用的语法知识,准确解决学过但忘了的案例,为算法问题刷题打下坚实基础。

  c语法基础(九)常用库函数的位操作和12.1位操作符号

  执行计算

  和

  运筹学

  ~

  不

  ^

  异或运算

  右移

  左移

  a相当于a/{2 k} a k相当于a * {2 k}常见运算:求x的第k位,x k ^ 1。

  Lowbit(x)=x -x,返回x的最后一位1,以及其后的0。

  在计算机中,-x=(~ x ^ 1)

  证明:

  12.2常用库函数常用库函数一般在#include算法中

  12.2.1反向翻转翻转矢量:

  reverse(a.begin()、a . end());

  翻转数组:

  //元素存储在下标1 ~ n中。

  反向(a 1,n1);

  //元素存储在下标0 ~ n-1中

  反向(a,a n);

  12.2.2唯一重复数据消除必须首先确保相同的元素在一起。

  返回去重后的最后一个迭代器(或指针)(只去掉相邻的相同元素),在打开之前仍然是关闭的,即这个迭代器是去重后最后一个元素的下一个位置。

  该函数通常用于离散化。通过使用迭代器(或指针)的减法,可以计算出去除权重后的元素数量。

  要对向量进行加权:

  //区别在于数组中不同元素的数量

  int m=unique(a.begin(),a . end())a . begin();//使用erase函数删除重复数据删除后的备用元素。

  a.erase(unique(a.begin(),a.end()),a . end());

  要复制数组,元素存储在下标1 ~ n中:

  //同上

  int m=unique(a 1,a n 1)(a 1);

  12.2.3 random_shuffle随机加扰与反向相同。

  由于随机种子是常数,所以多次随机化后结果是一样的。如果你想与众不同,你可以用时间作为随机种子。

  #包括iostream

  #包含算法

  #包含矢量

  #包括ctime

  使用命名空间std

  int main()

  {

  //int a[]={1,1,2,2,3,3,4 };

  向量int a({1,2,3,4,5 });

  srand(time(0));//time(0)返回从现在到1970年1月1日之间的秒数。

  random_shuffle(a.begin()、a . end());

  for(int x:a)cout x“”;

  cout endl

  返回0;

  }

  12.2.4 sort对两个迭代器(或指针)指定的部分进行快速排序。您可以在第三个参数中传递定义大小比较的函数,或者重载“小于号”运算符。默认情况下,它是从小到大排序的。

  sort(a.begin()、a . end());//从小到大

  Sort (a.begin(),a.end(),greater int//从大到小

  将一个int数组(存储在下标1 ~ n中的元素)从最大到最小排序,并将其传递给比较函数:

  int a[MAX _ SIZE];

  l boocmp(int a,int b)//a应该在b之前吗?

  {

  return//如果A是b,那么A应该在b之前。

  }

  sort(a 1,a n 1,CMP);//采用自定义排序# includechime

  使用命名空间std

  /*结构记录

  {

  int x,y;

  布尔运算符(常量记录t)常量

  {

  return x t.x//如果x小于t.x,先来。

  }

  } a[5];

  //a[0] a[1]

  */

  结构记录

  {

  int x,y;

  } a[5];

  l boocmp(rec a,rec b)//a应该在b之前吗?

  {

  返回a . x b . x;

  }//你可以定义一个比较函数,或者重载数

  int main()

  {

  for(int I=;我我)

  {

  甲[我]。x=-I;

  甲[我]。y=I;

  }

  for(int I=0;I I)printf((%d,% d),a[i]。x,a[i]。y);

  cout endl

  sort(a,a 5,CMP);

  //sort(a,a 5);如果上面重载了,可以直接用这个方法。

  for(int I=0;I I)printf((%d,% d),a[i]。x,a[i]。y);

  cout endl

  返回0;

  }

  对自定义结构向量进行排序,并重载“小于号”运算符:

  结构记录

  {

  int id,x,y;

  };

  矢量记录

  布尔运算符(常量记录a,常量记录b)

  {

  return a . x b . x a . x==b . x a . y b . y;

  }

  sort(a.begin()、a . end());

  12.2.5下限/上限二分法首先必须是有序的。

  lower_bound的第三个参数传入一个元素X,对两个迭代器(指针)指定的部分执行二分搜索法,返回指向第一个大于等于X的元素位置的迭代器(指针),No返回空指针。

  upper_bound的用法和lower_bound大致相同,唯一的区别是找到第一个大于x的元素,当然两个迭代器(指针)指定的部分要提前排序。

  求有序int数组中大于等于x的最小整数的下标(元素存储在下标1 ~ n中):

  int i=lower_bound(a 1,a 1 n,x)-a;

  在有序向量int中求小于等于x的最大整数(假设必须存在):

  int y=* - upper_bound(a.begin(),a.end(),x);

  例子

  #包括iostream

  #包含算法

  #包含矢量

  #包括ctime

  使用命名空间std

  int main()

  {

  int a[]={1,2,4,5,6 };

  int *p=lower_bound(a,a 5,7);

  cout * p endl

  返回0;

  }

  来自的。如需转载,请联系作者,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: