算法中常用函数

pow()函数:求x的y次方(次幂)

头文件:#include <math.h>

pow() 函数用来求 x 的 y 次幂(次方),其原型为:
    double pow(double x, double y);

pow()用来计算以x 为底的 y 次方值,然后将结果返回。设返回值为 ret,则 ret = x^y。

可能导致错误的情况:

  • 如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error 错误。
  • 如果底数 x 和指数 y 都是 0,可能会导致 domain error 错误,也可能没有;这跟库的实现有关。
  • 如果底数 x 是 0,指数 y 是负数,可能会导致 domain error 或 pole error 错误,也可能没有;这跟库的实现有关。
  • 如果返回值 ret 太大或者太小,将会导致 range error 错误。


错误代码:

  • 如果发生 domain error 错误,那么全局变量 errno 将被设置为  EDOM;
  • 如果发生 pole error 或 range error 错误,那么全局变量 errno 将被设置为 ERANGE。

memset()函数:将内存的前n个字节设置为特定的值

头文件:#include <string.h>

memset() 函数用来将指定内存的前n个字节设置为特定的值,其原型为:
    void * memset( void * ptr, int value, size_t num );

参数说明:

  • ptr 为要操作的内存的指针。
  • value 为要设置的值。你既可以向 value 传递 int 类型的值,也可以传递 char 类型的值,int 和 char 可以根据 ASCII 码相互转换。
  • num 为 ptr 的前 num 个字节,size_t 就是unsigned int。


【函数说明】memset() 会将 ptr 所指的内存区域的前 num 个字节的值都设置为 value,然后返回指向 ptr 的指针。

memset() 可以将一段内存空间全部设置为特定的值,所以经常用来初始化字符数组。例如

char str[20];
memset(str, '\0', sizeof(str)-1);

返回值】返回指向 ptr 的指针。

注意:参数 value 虽声明为 int,但必须是 unsigned char,所以范围在0 到255 之间。

 abs()函数:求绝对值(整数)

头文件:#include <stdlib.h>

定义函数:int abs (int j);

函数说明:abs()用来计算参数j 的绝对值,然后将结果返回。

返回值:返回参数j 的绝对值结果。

将int转换为string的两种方法(to_string、字符串流)

第一种

to_string这个函数还是很强大的!

string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val)

不仅int可以转换成string,这些都可以哦~

第二种

标准库定义了三种类型字符串流:istringstream,ostringstream,stringstream

看名字就知道这几种类型和iostream中的几个非常类似,分别可以读、写以及读和写string类型,它们也确实是从iostream类型派生而来的。

要使用它们需要包含sstream头文件

除了从iostream继承来的操作

1.sstream类型定义了一个有string形参的构造函数,

即:  stringstream stream(s); 创建了存储s副本的stringstream对象,s为string类型对象

2.定义了名为str的成员,用来读取或设置stringstream对象所操纵的string值:

stream.str(); 返回stream中存储的string类型对象

stream.str(s); 将string类型的s复制给stream,返回void

构造函数:

string Int_to_String(int n)

{

ostringstream stream;

stream<<n; //n为int类型

return stream.str();

}

reverse:反向排序算法

头文件:#include<algorithm>

vector<int> a(10);

reverse(a.begin(),a.begin()+10);   // 等价于 reverse(a.begin(),a.end());

从a.begin()到a.begin()+10之前的数    反向排序



猜你喜欢

转载自blog.csdn.net/qq_41668789/article/details/81606454