50 #ifndef _cvc3__expr_h_
54 #ifndef _cvc3__expr_map_h_
55 #define _cvc3__expr_map_h_
78 class const_iterator:
public std::iterator<std::input_iterator_tag, std::pair<Expr,Data>,std::ptrdiff_t> {
81 typename ExprMapType::const_iterator
d_it;
94 return d_it.operator->();
101 const std::pair<const Expr,Data>&
d_pair;
119 class iterator:
public std::iterator<std::input_iterator_tag, std::pair<Expr,Data>,std::ptrdiff_t> {
122 typename ExprMapType::iterator
d_it;
135 return d_it.operator->();
180 template<
class InputIterator>
181 void insert(InputIterator l, InputIterator r) {
d_map.insert(l,r); }
183 template<
class InputIterator>
184 void erase(InputIterator l, InputIterator r) {
186 d_map.erase((*l).first);
192 const_iterator
begin()
const {
return const_iterator(
d_map.begin()); }
193 const_iterator
end()
const {
return const_iterator(
d_map.end()); }
195 const_iterator
find(
const Expr& e)
const {
return const_iterator(
d_map.find(e)); }
215 class const_iterator:
public std::iterator<std::input_iterator_tag, std::pair<Expr,Data>,std::ptrdiff_t> {
231 return d_it.operator->();
238 const std::pair<const Expr,Data>&
d_pair;
254 class iterator:
public std::iterator<std::input_iterator_tag, std::pair<Expr,Data>,std::ptrdiff_t> {
270 return d_it.operator->();
315 template<
class InputIterator>
318 template<
class InputIterator>
319 void erase(InputIterator l, InputIterator r) {
328 const_iterator
end()
const {
return const_iterator(
d_map.
end()); }