From Jason Turner

[multiset.overview]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpdn0hbj8g/{from.md → to.md} +23 -8
tmp/tmpdn0hbj8g/{from.md → to.md} RENAMED
@@ -39,29 +39,33 @@ namespace std {
39
  typedef typename allocator_traits<Allocator>::const_pointer const_pointer;
40
  typedef std::reverse_iterator<iterator> reverse_iterator;
41
  typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
42
 
43
  // construct/copy/destroy:
44
- explicit multiset(const Compare& comp = Compare(),
 
45
  const Allocator& = Allocator());
46
  template <class InputIterator>
47
  multiset(InputIterator first, InputIterator last,
48
  const Compare& comp = Compare(),
49
  const Allocator& = Allocator());
50
- multiset(const multiset<Key,Compare,Allocator>& x);
51
- multiset(multiset<Key,Compare,Allocator>&& x);
52
  explicit multiset(const Allocator&);
53
  multiset(const multiset&, const Allocator&);
54
  multiset(multiset&&, const Allocator&);
55
  multiset(initializer_list<value_type>,
56
  const Compare& = Compare(),
57
  const Allocator& = Allocator());
 
 
 
 
 
58
  ~multiset();
59
- multiset<Key,Compare,Allocator>&
60
- operator=(const multiset<Key,Compare,Allocator>& x);
61
- multiset<Key,Compare,Allocator>&
62
- operator=(multiset<Key,Compare,Allocator>&& x);
63
  multiset& operator=(initializer_list<value_type>);
64
  allocator_type get_allocator() const noexcept;
65
 
66
  // iterators:
67
  iterator begin() noexcept;
@@ -96,31 +100,42 @@ namespace std {
96
  void insert(initializer_list<value_type>);
97
 
98
  iterator erase(const_iterator position);
99
  size_type erase(const key_type& x);
100
  iterator erase(const_iterator first, const_iterator last);
101
- void swap(multiset<Key,Compare,Allocator>&);
102
  void clear() noexcept;
103
 
104
  // observers:
105
  key_compare key_comp() const;
106
  value_compare value_comp() const;
107
 
108
  // set operations:
109
  iterator find(const key_type& x);
110
  const_iterator find(const key_type& x) const;
 
 
111
 
112
  size_type count(const key_type& x) const;
 
113
 
114
  iterator lower_bound(const key_type& x);
115
  const_iterator lower_bound(const key_type& x) const;
 
 
116
 
117
  iterator upper_bound(const key_type& x);
118
  const_iterator upper_bound(const key_type& x) const;
 
 
119
 
120
  pair<iterator,iterator> equal_range(const key_type& x);
121
  pair<const_iterator,const_iterator> equal_range(const key_type& x) const;
 
 
 
 
122
  };
123
 
124
  template <class Key, class Compare, class Allocator>
125
  bool operator==(const multiset<Key,Compare,Allocator>& x,
126
  const multiset<Key,Compare,Allocator>& y);
 
39
  typedef typename allocator_traits<Allocator>::const_pointer const_pointer;
40
  typedef std::reverse_iterator<iterator> reverse_iterator;
41
  typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
42
 
43
  // construct/copy/destroy:
44
+ multiset() : multiset(Compare()) { }
45
+ explicit multiset(const Compare& comp,
46
  const Allocator& = Allocator());
47
  template <class InputIterator>
48
  multiset(InputIterator first, InputIterator last,
49
  const Compare& comp = Compare(),
50
  const Allocator& = Allocator());
51
+ multiset(const multiset& x);
52
+ multiset(multiset&& x);
53
  explicit multiset(const Allocator&);
54
  multiset(const multiset&, const Allocator&);
55
  multiset(multiset&&, const Allocator&);
56
  multiset(initializer_list<value_type>,
57
  const Compare& = Compare(),
58
  const Allocator& = Allocator());
59
+ template <class InputIterator>
60
+ multiset(InputIterator first, InputIterator last, const Allocator& a)
61
+ : multiset(first, last, Compare(), a) { }
62
+ multiset(initializer_list<value_type> il, const Allocator& a)
63
+ : multiset(il, Compare(), a) { }
64
  ~multiset();
65
+ multiset& operator=(const multiset& x);
66
+ multiset& operator=(multiset&& x);
 
 
67
  multiset& operator=(initializer_list<value_type>);
68
  allocator_type get_allocator() const noexcept;
69
 
70
  // iterators:
71
  iterator begin() noexcept;
 
100
  void insert(initializer_list<value_type>);
101
 
102
  iterator erase(const_iterator position);
103
  size_type erase(const key_type& x);
104
  iterator erase(const_iterator first, const_iterator last);
105
+ void swap(multiset&);
106
  void clear() noexcept;
107
 
108
  // observers:
109
  key_compare key_comp() const;
110
  value_compare value_comp() const;
111
 
112
  // set operations:
113
  iterator find(const key_type& x);
114
  const_iterator find(const key_type& x) const;
115
+ template <class K> iterator find(const K& x);
116
+ template <class K> const_iterator find(const K& x) const;
117
 
118
  size_type count(const key_type& x) const;
119
+ template <class K> size_type count(const K& x) const;
120
 
121
  iterator lower_bound(const key_type& x);
122
  const_iterator lower_bound(const key_type& x) const;
123
+ template <class K> iterator lower_bound(const K& x);
124
+ template <class K> const_iterator lower_bound(const K& x) const;
125
 
126
  iterator upper_bound(const key_type& x);
127
  const_iterator upper_bound(const key_type& x) const;
128
+ template <class K> iterator upper_bound(const K& x);
129
+ template <class K> const_iterator upper_bound(const K& x) const;
130
 
131
  pair<iterator,iterator> equal_range(const key_type& x);
132
  pair<const_iterator,const_iterator> equal_range(const key_type& x) const;
133
+ template <class K>
134
+ pair<iterator, iterator> equal_range(const K& x);
135
+ template <class K>
136
+ pair<const_iterator, const_iterator> equal_range(const K& x) const;
137
  };
138
 
139
  template <class Key, class Compare, class Allocator>
140
  bool operator==(const multiset<Key,Compare,Allocator>& x,
141
  const multiset<Key,Compare,Allocator>& y);