Getting Union, Intersection, or Difference of Sets

2019-04-07 06:51发布

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?

3条回答
Anthone
2楼-- · 2019-04-07 07:35

As for your first question, have a look at

查看更多
做自己的国王
3楼-- · 2019-04-07 07:42

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.

查看更多
Juvenile、少年°
4楼-- · 2019-04-07 07:45

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.

查看更多
登录 后发表回答