- 博客(5)
- 收藏
- 关注
原创 Effective STL(一)
并且不会造成效率上的损失。5、内存占用不同,typedef定义类型别名不会产生额外的内存占用,只是为已经有的类型赋予一个新的名称,define定义的宏在预处理截断进行文本替换,会产生额外的代码和内存再用。容器保存对象,但是不是我们给他放进去时的对象,而是这个对象的拷贝,反之从容器中获取到的对象也是这样,拷贝进去,拷贝出来,STL中只要移动对象,就会拷贝。如果想解决因为拷贝产生的分割问题(将派生类对象插入容器,拷贝函数是基类的拷贝函数,对象的派生类部分会被删除),方法就是建立指针的容器,而不是对象的容器。
2024-05-09 13:57:46 539 1
原创 Effective C++浅谈(二)
dynamic_cast<T>():安全向下转型,子类转换为父类指针,当父类转换为子类指针的时候,如果父类中没有虚函数,会编译不过,如果有虚函数的时候,如果父类指针指向子类,可以返回预期的地址,如果父类没有指向子类,会返回null,是安全的,但是耗费运行成本,依靠的是虚函数表,转换的时候,通过续表指针可以获取到该类的对象的所有虚函数,包括其父类的。remove,两个参数制定了需要进行操作的区间,但是并没有将容器中的元素删除,同时返回操作区间的end迭代器的位置,在使用erase函数,删除需要删除的区间。
2024-05-08 15:07:03 268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人