C++ 中的类型转换
基本转换
- 隐式转换:由低精度的数据类型转换为高精度的数据类型(int->double)
- 显式转换:显式的,由高精度强制转换为低精度数据类型(double->int),存在丢失精度的问题
四种强制转换
强制转换格式:
b = XXXX_cast<T*>(a);
- static_cast:通用转换,C++中的基本数据类型之间的转换(如char和int等),隐式转换基本都是static_cast
- const_cast:常量转换,将常量指针/引用转为非常量的,仅适用于指针/引用,不适用于其他基本数据类型
- dynamic_cast:通常在基类和派生类之间转换使用。static_cast转换也可以用于基类和派生类之间,但在基类转化为派生类时并不安全(没有进行动态类型检查)
- reinerpret_cast:强制转换,用于进行两种无关的类型转换
STL库中的常用容器
c.size() && c.capacity():
c.size():容器中当前占有的存储量(现在里面存了多少个)
c.capacity():容器预计占有的存储量(现在里面