00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #pragma once
00019
00020 template <class T, class U>
00021 typename T::value_type::second_type* find_ptr(T& c, U v)
00022 {
00023 typename T::iterator i = c.find(v);
00024 return i == c.end() ? NULL : &i->second;
00025 }
00026
00027 template <class T, class U>
00028 const typename T::value_type::second_type* find_ptr(const T& c, U v)
00029 {
00030 typename T::const_iterator i = c.find(v);
00031 return i == c.end() ? NULL : &i->second;
00032 }
00033
00034 template <class T, class U>
00035 typename T::value_type::second_type find_ptr2(T& c, U v)
00036 {
00037 typename T::value_type::second_type* i = find_ptr(c, v);
00038 return i ? *i : NULL;
00039 }
00040
00041 template <class T, class U>
00042 const typename T::value_type::second_type find_ptr2(const T& c, U v)
00043 {
00044 const typename T::value_type::second_type* i = find_ptr(c, v);
00045 return i ? *i : NULL;
00046 }