赞
踩
这里说以下C++的一些函数知识,给大家巩固下。
String(const String & str); //拷贝构造
//常用拷贝构造的场景:
//1、当类的对象被初始化为同一类的另一个对象时
//2、当对象被作为参数传递给一个函数时
//3、当函数返回一个对象时
1. next_permutation - 需要头文件 algorithm
用法:next_permutation(序列起始地址,序列结束地址)
功能:按序列,生成下一个比当前序列大的序列
正确用法如下举例
int a[10]={1,2,3};
do{
cout << a[0] << a[1] << a[2];
}while(next_permutation(a,a+3));
// Output:
// 1 2 3 2 1 3 3 1 2
// 1 3 2 2 3 1 3 2 1
2. 取整函数 - 需要头文件 cmath
ceil():向上取整 floor():向下取整
注意下负数时候的取整情况
正确用法如下举例
int a = 10.5, b = -10.5;
ceil(a); // Output:11
floor(a); // Output:10
ceil(b); // Output:-10
floor(b); // Output:-11
3. fill()填充函数 - 需要头文件 algorithm
用法:fill(起始地址,结束地址,填充值)
注意:用new创建的数组,不能用fill填充(因为new出来的数组内存不一定是连续的)
正确用法如下举例
//对一维数组填充:
fill(array,array+4,5); // Output:array[0] = array[1] = array[2] = array[3] = 5
//对二维数组填充:
int G[6][4]; //fill()填充只能用于静态数组
fill(G[0],G[0]+6*4,520);
4. memset()赋初值函数 - 需要头文件 string.h
详解见:教你学会memset()函数
用法:memset(指针或者数组,赋值,指针或数组的长度)
注意:memset对非字符型数组赋初值是不可取的,它方便清空一个结构类型的变量或数组,常用于内存空间初始化
正确用法如下举例
char buffer[] = "Hello world\n";
memset(buffer, '*', sizeof(buffer));
memset是对字节进行操作,所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值;fill原理是把那一块单元赋成指定的值,也就是说任何值都可以。
5. lower_bound() 和 upper_bound() 函数 - 需头文件 algorithm
注意下面范围的区间括号
lower_bound(起始地址,结束地址,val): 用来寻找在数组或容器的[first,last)范围内第一个值大于等于val元素的位置
upper_bound(first,last,val) :用来寻找在数组或容器的[first,last)范围内第一个值大于val元素的位置
如果是数组,返回该位置的指针;若果是容器,返回该位置的迭代器
6. int stoi()函数 - 需要头文件 cstring
用法:int stoi(const string*)
功能:字符处理函数,用于把字符串转换成int输出。
stoi()会做范围检查,默认范围是在int的范围内的,超出范围发生runtime error
7. int atoi()函数 - 需要头文件 cstring
用法:int atoi(const char*)
功能:字符处理函数,用于把字符串转换成int输出,返回一个int类型的值
注意:该函数不会做范围检查,超出上界,则输出上界,超出下界,则输出下界
参数是一个const char*,因此想要处理string,需要使用string.c_str()作为参数,调用 c_str()的方法把这个string转换成 const char*类型
正确用法如下举例
//对于string类型的变量
string s4 = ‘abcd’;
cout << atoi(s4.c_str()) << endl;
8. memcpy()函数 - 需要头文件 cstring
用法:memcpy(destin,source,n)
功能:把source地址开始的n个值赋值给从destin地址开始的n个值
,与strcpy相比,memcpy并不是遇到’\0’就结束,而是一定会拷贝完n个字节,strcpy就只能拷贝字符串了,它遇到’\0’就结束拷贝
需要注意事项: 声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。