其他库函数

其他库函数

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)

posted @ 2026-04-08 13:16  Sherry_pro  阅读(2)  评论(0)    收藏  举报