327-Hash_table的学习(1)
关于hashtable
部分讲解测试
测试1
我们调式进入hashtable
接下来我们要初始化桶
接下来
first指向第一个结点,last指向最后一个元素的后继
pos指向第一个大于n的值
** __first函数的书写**
template <class _ForwardIter, class _Tp, class _Distance>
_ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last,
const _Tp& __val, _Distance*)
{
_Distance __len = 0;
//distance(__first, __last, __len);
__len = yhp::distance(__first,__last);
_Distance __half;
_ForwardIter __middle;
while (__len > 0)
{
__half = __len >> 1;
__middle = __first;
yhp::advance(__middle, __half);
if (*__middle < __val)
{
__first = __middle;
++__first;
__len = __len - __half - 1;
}
else
{
__len = __half;
}
}
return __first;
}
insert尾插
reserve函数和resize函数的区别
reserve函数只开辟空间,无元素。
运行,报错,访问越界。
resize函数既开辟了空间,又对每个空间调动构造函数构建对象了,初始化为0
继续看
继续调试刚才的程序
插入唯一值
下面两种写法都可以
我们修改一下主函数
hashtable和hashmap
打开hashmap和hashtable,找到下面代码
我们再看
还没有评论,来说两句吧...