【发布时间】:2022-01-19 10:29:29
【问题描述】:
我必须根据std::multiset 实现一个类。这个想法是,当两个多重集进入同一个“视图”时,我的类需要对它们进行排序,制作运算符和迭代器等,但我基本上停留在第一步。问题是我需要创建相同的类,只是使用不同数量的模板变量。主程序这样调用我的类,例如:
multisets_merge_view<int> mvi(a, b); //a and b are std::multiset<int>
multisets_merge_view<int, std::greater<int>> mvi(ga, gb); //ga and gb are std::multiset<int, std::greater<int>>
我需要使用带有-fsanitize=address,leak,undefined -O3 -Wall -Wextra -Werror的g++编译器
【问题讨论】:
-
如果仅用于比较器,为什么不提供默认值?
template<typename T, typename C = std::less<T>>注意:std::multiset实际上也是如此。
标签: c++ templates stl multiset