为什么在优先级队列中使用容器参数进行重载?
Why is a container parameter used in a priority queue for overloading?
std::priority_queue< int, std::vector<int>, std::greater<int> > pq;
为什么使用矢量参数?
-
优先级队列实现可以使用不同类型的容器来构建下划线数据结构。您可以使用该模板参数指定您最喜欢的模板。
-
从这里引用
容器 - 用于存储 元素。容器必须满足以下要求: SequenceContainer及其迭代器必须满足以下要求: 随机访问迭代器。此外,它必须提供以下内容 具有通常语义的函数: 前(( push_back(( pop_back(( 标准容器 std::vector 和 std::d eque 满足这些要求。
顺便说一句,vector
是默认的。
相关文章:
- 使用模板参数重载C++方法:如何使其适用于模板的子类?
- 如何使用类的参数重载运算符+?
- 为什么我不能用两个参数重载 C++ 运算符 []?
- 模板化类参数重载
- 模板参数重载,最后一个参数为非类型名
- MSVC编译器错误将模板与枚举参数重载时
- std::map:使用键类以外的参数重载运算符<
- C++用参数重载友元类函数参数
- 如何在参数重载解析中禁用隐式转换为指向 void 的指针
- 使用可选参数重载 new 和 delete 运算符
- 如何通过参数函子参数重载函数切换
- 同时使用参数重载和返回类型重载
- 特征3,并根据模板参数重载新算子,以确保正确对齐
- C++使用默认参数重载
- 单例方案,使用不同的参数重载 getInstance
- 具有'const'参数重载的可变参数模板
- 是fill_n,并填充相同的函数,但具有不同的参数重载
- 用不同的参数重载运算符两次
- 模板非类型参数重载
- 无法推断模板参数/'n'重载都无法覆盖所有参数类型