C++常见易忘知识点与常shi

本文探讨了C++ STL中vector容器的size和capacity的区别,解释了如何使用reserve和resize来优化内存分配,并讨论了红黑树在STL中的应用。此外还介绍了函数指针的复杂类型声明以及inline函数的实现细节。

vector的size和capacity

reserve 与 resize 是区别的:
reserve 用来给vector预分配存储区大小,即capacity的值 ,没有给这段内存进行初始化。reserve 的参数是推荐预分配内存的大小,实际分配的可能等于或大于这个值。这样做的好处就是消除当往vector插入数据时,size 超过原来的默认分配的capacity值时 所带来的 内存重分配开销。
resize 不仅会改变vector的capacity大小,而且会重置size值,

在C++ STL中,很多部分(目前包括set, multiset, map, multimap)应用了红黑树的变体(SGI STL中的红黑树有一些变化,这些修改提供了更好的性能,以及对set操作的支持)。

int (*ff(int ))(int *, int )解读:这是一个函数指针,他所能够zhixiang的函数的输入为int 返回值为形如:int (*)(int * , int)的函数指针

函数中包含复杂的语法例如循环和递归,还有虚函数等,打多数编译器会拒绝将其作为inline函数进行优化。

如果有函数指针指向了inline函数,那么编译器会为这个函数生成一个本体(以便函数指针指向的地址确实存在一个函数)。

 

virtual函数是动态绑定,但是缺省参数值却是静态绑定

转载于:https://www.cnblogs.com/candycloud/p/3594512.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值