From Jason Turner

[map.overview]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp0utnw6ci/{from.md → to.md} +26 -9
tmp/tmp0utnw6ci/{from.md → to.md} RENAMED
@@ -53,28 +53,32 @@ namespace std {
53
  return comp(x.first, y.first);
54
  }
55
  };
56
 
57
  // [map.cons], construct/copy/destroy:
58
- explicit map(const Compare& comp = Compare(),
 
59
  const Allocator& = Allocator());
60
  template <class InputIterator>
61
  map(InputIterator first, InputIterator last,
62
  const Compare& comp = Compare(), const Allocator& = Allocator());
63
- map(const map<Key,T,Compare,Allocator>& x);
64
- map(map<Key,T,Compare,Allocator>&& x);
65
  explicit map(const Allocator&);
66
  map(const map&, const Allocator&);
67
  map(map&&, const Allocator&);
68
  map(initializer_list<value_type>,
69
  const Compare& = Compare(),
70
  const Allocator& = Allocator());
 
 
 
 
 
71
  ~map();
72
- map<Key,T,Compare,Allocator>&
73
- operator=(const map<Key,T,Compare,Allocator>& x);
74
- map<Key,T,Compare,Allocator>&
75
- operator=(map<Key,T,Compare,Allocator>&& x);
76
  map& operator=(initializer_list<value_type>);
77
  allocator_type get_allocator() const noexcept;
78
 
79
  // iterators:
80
  iterator begin() noexcept;
@@ -116,31 +120,44 @@ namespace std {
116
  void insert(initializer_list<value_type>);
117
 
118
  iterator erase(const_iterator position);
119
  size_type erase(const key_type& x);
120
  iterator erase(const_iterator first, const_iterator last);
121
- void swap(map<Key,T,Compare,Allocator>&);
122
  void clear() noexcept;
123
 
124
  // observers:
125
  key_compare key_comp() const;
126
  value_compare value_comp() const;
127
 
128
- // [map.ops], map operations:
129
  iterator find(const key_type& x);
130
  const_iterator find(const key_type& x) const;
 
 
 
131
  size_type count(const key_type& x) const;
 
132
 
133
  iterator lower_bound(const key_type& x);
134
  const_iterator lower_bound(const key_type& x) const;
 
 
 
135
  iterator upper_bound(const key_type& x);
136
  const_iterator upper_bound(const key_type& x) const;
 
 
137
 
138
  pair<iterator,iterator>
139
  equal_range(const key_type& x);
140
  pair<const_iterator,const_iterator>
141
  equal_range(const key_type& x) const;
 
 
 
 
142
  };
143
 
144
  template <class Key, class T, class Compare, class Allocator>
145
  bool operator==(const map<Key,T,Compare,Allocator>& x,
146
  const map<Key,T,Compare,Allocator>& y);
 
53
  return comp(x.first, y.first);
54
  }
55
  };
56
 
57
  // [map.cons], construct/copy/destroy:
58
+ map() : map(Compare()) { }
59
+ explicit map(const Compare& comp,
60
  const Allocator& = Allocator());
61
  template <class InputIterator>
62
  map(InputIterator first, InputIterator last,
63
  const Compare& comp = Compare(), const Allocator& = Allocator());
64
+ map(const map& x);
65
+ map(map&& x);
66
  explicit map(const Allocator&);
67
  map(const map&, const Allocator&);
68
  map(map&&, const Allocator&);
69
  map(initializer_list<value_type>,
70
  const Compare& = Compare(),
71
  const Allocator& = Allocator());
72
+ template <class InputIterator>
73
+ map(InputIterator first, InputIterator last, const Allocator& a)
74
+ : map(first, last, Compare(), a) { }
75
+ map(initializer_list<value_type> il, const Allocator& a)
76
+ : map(il, Compare(), a) { }
77
  ~map();
78
+ map& operator=(const map& x);
79
+ map& operator=(map&& x);
 
 
80
  map& operator=(initializer_list<value_type>);
81
  allocator_type get_allocator() const noexcept;
82
 
83
  // iterators:
84
  iterator begin() noexcept;
 
120
  void insert(initializer_list<value_type>);
121
 
122
  iterator erase(const_iterator position);
123
  size_type erase(const key_type& x);
124
  iterator erase(const_iterator first, const_iterator last);
125
+ void swap(map&);
126
  void clear() noexcept;
127
 
128
  // observers:
129
  key_compare key_comp() const;
130
  value_compare value_comp() const;
131
 
132
+ // map operations:
133
  iterator find(const key_type& x);
134
  const_iterator find(const key_type& x) const;
135
+ template <class K> iterator find(const K& x);
136
+ template <class K> const_iterator find(const K& x) const;
137
+
138
  size_type count(const key_type& x) const;
139
+ template <class K> size_type count(const K& x) const;
140
 
141
  iterator lower_bound(const key_type& x);
142
  const_iterator lower_bound(const key_type& x) const;
143
+ template <class K> iterator lower_bound(const K& x);
144
+ template <class K> const_iterator lower_bound(const K& x) const;
145
+
146
  iterator upper_bound(const key_type& x);
147
  const_iterator upper_bound(const key_type& x) const;
148
+ template <class K> iterator upper_bound(const K& x);
149
+ template <class K> const_iterator upper_bound(const K& x) const;
150
 
151
  pair<iterator,iterator>
152
  equal_range(const key_type& x);
153
  pair<const_iterator,const_iterator>
154
  equal_range(const key_type& x) const;
155
+ template <class K>
156
+ pair<iterator, iterator> equal_range(const K& x);
157
+ template <class K>
158
+ pair<const_iterator, const_iterator> equal_range(const K& x) const;
159
  };
160
 
161
  template <class Key, class T, class Compare, class Allocator>
162
  bool operator==(const map<Key,T,Compare,Allocator>& x,
163
  const map<Key,T,Compare,Allocator>& y);