Getting Union, Intersection, or Difference of Sets in C++

守給你的承諾、 提交于 2019-12-09 17:10:05

问题


I have a couple questions about how to use C++ sets (std::set)

  1. Is there a way to get the union, intersection, or difference of two C++ sets? (It's pretty easy to write my own functionto do that but I wanted to know if there was a built in function for it)

  2. Can C++ sets be used as keys in a map?


回答1:


Use the set_difference(), set_union(), set_intersection() and set_symmetric_difference() functions.

Sets and maps support any key type that can compare. By default this means the type has operator<() defined, but you can provide your own comparator. C++ sets don't have operator<() defined and therefore can't be used as keys unless you provide your own comparator.




回答2:


As for your first question, have a look at

  • set_union
  • set_intersection
  • set_difference.



回答3:


Anything can be used as a key in a map as long as you provide a class or function that can compare them. Here is an example.



来源:https://stackoverflow.com/questions/1736017/getting-union-intersection-or-difference-of-sets-in-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!