如何检查一个向量是否是另一个向量的子集?
目前,我认为最好的选择是使用 std::set_intersection,然后检查较小输入的大小是否与 set_intersection 填充的元素数量相同。
有更好的解决方案吗?
Currently, I think my best option is to use std::set_intersection, and then check if the size of the smaller input is the same as the number of elements filled by set_intersection.
Is there a better solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
试试这个:
关于includes()。
跑进
再加上 O(nlog(n)) 用于对向量进行排序。你不会比这更快地得到它。
Try this:
About includes().
runs in
Plus O(nlog(n)) for sorting vectors. You won't get it any faster than that.
如果您使用的是 c++-20 或更高版本,则可以使用
std ::ranges::includes
执行相同的操作。If you are using c++-20 or higher, you can use the
std::ranges::includes
to do the same.