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)函数接受两个参数:

  1. a:要交换值的第一个变量的引用
  2. b:要交换值的第二个变量的引用
    swap()函数可以用于交换任意类型的变量
int a = 10;
int b = 20;
swap(a,b);

reverse() 将元素顺序反转

  • 用于反转容器中元素顺序的函数
  • 原型定义在<algorithm>头文件中
template<class BidirIt>
void reverse(BidirIt first,BidirIt last);

接受两个参数:

  1. first:指向容器中要反转的第一个元素的迭代器
  2. last:指向容器中要反转的最后一个元素的下一个位置的迭代器
  • 在[first,last)范围内将元素反转
  • 可以反转各种类型的容器,包括数组,向量,链表等
    !!!此函数只能用于双向迭代器的容器,因为它需要向前和向后遍历容器中的元素

unique() 删除相邻相同的元素前提是要进行排序sort

  • 用于去除容器中相邻重复元素的函数
  • 原型定义在<algorithm>头文件中
template<class ForwarIt>
ForwaardIt unique(ForwardIt first,ForwardIt last);

接受两个参数:

  1. first:指向容器中要反转的第一个元素的迭代器
  2. 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;
}

错误麻烦评论区指出

posted @ 2024-03-02 15:33  777CC  阅读(25)  评论(0)    收藏  举报