其他库函数
其他库函数
1. memset
-
函数原型: void* memset(void* ptr, int value, size_t num);
-
头文件: 定义在头文件中
-
参数说明
-
ptr: 指向要设置值的内存块的指针
-
value: 要设置的值(8位二进制数)
-
num: 要设置的字节数(以byte为单位) 1bit = 8 byte
-
-
功能: 将ptr指向的内存块的前num个字节设置为value的值
-
返回值: 返回指向ptr的指针(通常不使用)
-
注意事项
-
对于字符数组可以准确设置每个byte的值
-
对于非字符类型数组可能产生未定义行为
-
每个byte都会被设置为value值
查看二进制值: bitset<32>(a[i])
-
2. swap
1)swap()介绍
-
函数原型: void swap(T &a, T &b)
-
参数: 两个要交换值的变量的引用
-
实现原理
-
将第一个值存入临时变量
-
将第二个值赋给第一个变量
-
将临时变量值赋给第二个变量
-
-
特点
-
可以交换任意类型变量
-
C++中使用引用,C语言需使用指针
-
是模板函数,支持多种数据类型
-
3. reverse
-
函数原型: void reverse(BidirIt first, BidirIt last)
-
头文件:
-
参数
-
first: 要反转的第一个元素的迭代器(地址)
-
last: 要反转的最后一个元素的下一个位置的迭代器(地址)
-
-
功能: 反转[first, last)范围内的元素顺序
-
支持容器
-
数组、向量、链表等
-
需要支持双向迭代器
-
-
注意事项
-
区间是左闭右开[first, last)
-
end()指向最后一个元素的下一个位置
-
4. unique
-
函数原型: ForwardIt unique(ForwardIt first, ForwardIt last)
-
头文件:
-
功能: 去除相邻重复元素
-
返回值: 指向去重后范围尾后位置的迭代器
-
特点
-
只去除相邻重复元素
-
不改变容器大小,仅将重复元素移到后面
-
通常配合erase使用删除多余元素
-
-
注意事项
-
必须先用sort排序才能完全去重
-
时间复杂度为O(n)
-
unique(a, a+5) - a计算去重后元素个数
-
sort:O(nlogn)
-

浙公网安备 33010602011771号