美文网首页
2020-04-22

2020-04-22

作者: 年N | 来源:发表于2020-04-24 10:53 被阅读0次

    上海紫灏

    1 动态类型转换

    C++动态类型转换有四种const_cast、static_cast、dynamic_cast、reinterpreter_cast

    2 用map 不用hashmap的场景

    3 new 和malloc的区别

    new从自由存储区上分配内存,malloc从堆上分配内存;new/delete会调用构造函数/析构函数对对象进行初始化与销毁;operator new/delete可以进行重载

    4 线程安全的读写锁

    5 判断float是零

    abs(a)<=1e-6

    1e-6表示1乘以10的负6次方。

    Math.abs(x)&lt;1e-6其实相当于x==0

    1e-6(也就是0.000001)叫做epslon,用来抵消浮点运算中因为误差造成的相等无法判断的情况。它通常是一个非常小的数字(具体多小要看你的运算误差)

    6 resize

    7 memcpy memmove

    一、memmove()和memcpy()函数和strcpy()函数的区别;

        (1)使用的类型不同,strcpy()函数只对字符串进行操作;memmove()和memcpy()函数对所有类型都使用,为内存拷贝(原理:就是利用字节数,交换位置数据的);

        (2)strcpy()以‘\0’为拷贝的结束条件;而memmove()和memcpy()函数是以第三个参数num进行控制拷贝;

    二、函数说明:

        (1)memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝N个字节到目标dst所指的内存地址的起始位置中。

        (2)memmove函数的功能同memcpy基本一致,但是当src区域和dst内存区域重叠时,memcpy可能会出现错误,而memmove能正确进行拷贝

    void *memcpy(void *dst, const void *src, size_t count);

    void *memmove(void *dst, const void *src, size_t count);

    memcpy()函数是从前往后拷贝;假如出现内存重叠的现象;拷贝结果可能出错;

    memmove()函数在memcpy()函数的基础上加入了对内存重叠拷贝的处理;引入了倒序拷贝的方式处理内存重叠的

    8 timewait 

    相关文章

      网友评论

          本文标题:2020-04-22

          本文链接:https://www.haomeiwen.com/subject/nmsiihtx.html