2020-04-22

2020-04-24  本文已影响0人  年N

上海紫灏

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 

上一篇 下一篇

猜你喜欢

热点阅读