智能指针有unique_ptr(独占指针),shared_ptr(共享指针)。unique_ptr独占式指针,只能由一个智能指针拥有管理指针资源。shared_ptr则是共享式指针,多个指针对象可以共享同一个指针资源。C++中,智能指针本质上就是类模板,可以通过定义一个自定义的删除器(Deleter)来指定智能指针在析构时释放资源的方式。智能指针中的删除器可以是一个函数对象(函数指针),函数符或者
进程调度分析
1、STL中hashtable的实现?STL的hashtable使用的开链法解决hash冲突问题,如下图所示。hashtable中的bucket所维护的list既不是也不是slist,而是其自己定义的由hashtable_node数据结构组成的linked-list,而bucket聚合体本事采用vector进行存储。hashtable的迭代器只提供前进操作,不提供向后操作。在hashtable设计
1、什么是STL?C++ STL从广义来讲包括了三类:算法,容器和迭代器。算法包括排序,复制等常用算法,以及不同容器特定的算法。容器就是数据的存放形式,包括序列式容器和关联式容器还有容器适配器,序列式容器就是list,vector等,关联式容器就是set,map等,容器适配器就是stack,queue等。迭代器就是在不暴露容器内部结构的情况下对容器的遍历。2、trivial destructor是
关于this指针你知道什么?this指针是类指针,指向对象的首地址。this指针只能在成员函数中使用,在全局函数、静态成员函数中都不能使用this。this指针只能在成员函数中才有定义,且存储位置会因编译器不同有不同存储位置。this指针的用处?一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是类内部,当在类的非静态成员函数中访问类的非静态成员的时候
1、类的对象存储空间?非静态成员的数据类型大小之和。编译器加入的额外成员变量(如指向虚函数表的指针)为了边缘对齐优化加入了padding2、简要说明C++的内存分区C++中的内存分区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区和代码区。如下图栈:在执行函数时,函数内部局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高
1、C++11有哪些新特性?nullptr替换了NULL引入了auto和decltype这两个关键字实现类型推导基于范围的for循环for(auto& i : res){}类和结构体中初始化列表。Lambda表达式(匿名函数)std::forward_list(单向链表)右值引用和move语义2、auto、decltype和decltype(auto)的用法(1)autoC++11新标准引
句柄实际上是一种指向某种资源的指针,但与指针又有所不同:指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。Windows并不希望一般程序修改其内部数据结构,因为这样太不安全。所以Windows给每个使用GlobalAlloc等函数声明的内存区域指定一个句柄(本质上仍是一个指针,但不要直接操作它),平时你只是在调用API函数时利用这个句柄来说明要操作哪段内存。当你需要对某个内存进行
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号