3.2蓝桥杯每天知识,其他库函数
memeset() 初始化
用于设置内存块值的函数
void* memset(void* ptr,int value,size_t num)
- ptr:指向要设置值的内存块的指针
- value:要设置的值(通常是一个整数,8位二进制)
- num:要设置的字节数
- 作用:初始化内存块,将ptr指向的内存块的前num个字节设置为value的值,它返回一个指向ptr的指针
int arr[10]
memset(arr,0,sizeof(arr));
!!! memset()函数对于非字符类型的数组可能会产生未定义行为.
在处理非字符性数组时,更好使用C++中的其他方法,如循环遍历来初始化数组
swap() 交换函数
swap(T &a,T &b)函数接受两个参数:
- a:要交换值的第一个变量的引用
- b:要交换值的第二个变量的引用
swap()函数可以用于交换任意类型的变量
int a = 10;
int b = 20;
swap(a,b);
reverse() 将元素顺序反转
- 用于反转容器中元素顺序的函数
- 原型定义在
<algorithm>头文件中
template<class BidirIt>
void reverse(BidirIt first,BidirIt last);
接受两个参数:
- first:指向容器中要反转的第一个元素的迭代器
- last:指向容器中要反转的最后一个元素的下一个位置的迭代器
- 在[first,last)范围内将元素反转
- 可以反转各种类型的容器,包括数组,向量,链表等
!!!此函数只能用于双向迭代器的容器,因为它需要向前和向后遍历容器中的元素
unique() 删除相邻相同的元素前提是要进行排序sort
- 用于去除容器中相邻重复元素的函数
- 原型定义在
<algorithm>头文件中
template<class ForwarIt>
ForwaardIt unique(ForwardIt first,ForwardIt last);
接受两个参数:
- first:指向容器中要反转的第一个元素的迭代器
- last:指向容器中要反转的最后一个元素的下一个位置的迭代器
- 在[first,last)范围内将相邻重复元素去除,并返回一个指向去重后范围的尾后迭代器
- 去重后值保留了第一个出现的元素,后续重复的元素都被移除(实际上只是将重复元素移到后面,并未删除,删除需要借助
vec.erase(it,vec.end());)
int main()
{
vector<int> vec = {1,1,2,2,3,3,3,4,4,5};
auto it = unique(vec.begin(),vec.end());
vec.erase(it,vec.end());
for(int num : vec){
cout << num << " ";
}
cout << endl;
}
错误麻烦评论区指出

浙公网安备 33010602011771号