文章列表
003_哈希表
# 一、理论基础 哈希法使用的场景通常为需要快速判断一个元素是否出现在集合里,哈希表牺牲空间换取时间。 哈希表通过哈希函数来进行 key 和 value 的映射。 映射时,可能会发生哈希碰撞。(尤其是元素数量大于容器数量的时候) 解决哈希碰撞有拉链法和线性探测法。 C++ 中常见的三种哈希结构:数组(array、vector)、集合(set)、映射(map)。 集合 底层实现 是否有序 数值是否可以重复 能否更改数值 查询效率 增删效率 std::set 红黑树 有序 否 否 O(log n) O(log n) std::multiset 红黑树 有序 是 否 O(log...
more...packaged_task
The class template std::packaged_task wraps any callable target (function, lambda expression, bind expression, or another function object) so that it can be invoked asynchronously. Its return value or exception thrown is stored in a shared state which can be accessed through std::future...
more...future
std::future 是 C++ 标准库中的一个类模板,用于表示一个异步操作的结果,可用于从一个线程获取另一个线程计算的结果。 std::future 还可以与 std::promise 、 std::async 、 std::packaged_task 结合使用,用于实现更复杂的异步任务管理。 简单来说, std::future 提供了一种获取异步操作的结果的机制: 一个异步操作(通过 std::async 、 std::packaged_task 或 std::promise 创建)能够向其创建者提供一个 std::future 对象,使用者可以利用 std::future...
more...promise
The class template std::promise provides a facility to store a value or an exception that is later acquired asynchronously via a std::future object created by the std::promise object. Note that the std::promise object is meant to be used only once. -- cppreference/promise # 1、概述 std::promise 是...
more...