C++ 常见问题总结(5)
·
1、map&set容器的实现原理?
set称作集合,只存储key;
map映射表,存储[key,value]键值对,
它们的底层数据结构都是红黑树,都是通过key进行元素比较
2、shared_ptr引用计数存在哪里?

堆上分配的
3、STL、map底层、deque底层、vector里的empty()和size()的区别、函数对象?
STL标准容器 ->顺序容器(vector,deque,list),容器适配器(stack,queue,priority_queue),关联容器(有序(set和map)和无序(底层是链式哈希表))
还有近容器 数组,string,bitset 迭代器 泛型算法
map底层是红黑树
deque底层是动态开辟的二维数组
deque的实现有这2个宏 ,一维默认size是2

比如说用整型实例化deque,二维大小就是1024
deque底层内存不是连续的,正在开辟的二维数组

vector里的empty()和size()


用last-first,firs指向的是vector底层内存的起始地址,last指向的是最后一个有效元素的后继位置,end指向的是内存的末尾地址,
函数对象(拥有()运算符重载函数) 使用在泛型算法当中
operator() test(); test.operator()(); sort find_if priority_queue set map
更多推荐



所有评论(0)