iterator_property_map<RandomAccessIterator, OffsetMap, T, R>
This property map is an adaptor that converts any random access iterator into a Lvalue Property Map. The OffsetMap type is responsible for converting key objects to integers that can be used as offsets with the random access iterator.
template <typename T> typename boost::property_traits<T>::value_type get_value_three(T m) { return get(m, 3); } int main() { typedef boost::identity_property_map id_map; std::vector<int> fibo; fibo.push_back(1); fibo.push_back(1); fibo.push_back(2); fibo.push_back(3); fibo.push_back(5); fibo.push_back(8); fibo.push_back(13); boost::iterator_property_map< std::vector<int>::iterator, id_map> fibo_map(fibo.begin() + 2); std::cout << "The sixth fibonacci number is " << get_value_three(fibo_map) << std::endl; int primes[]={2,3,5,7,11,13,17}; boost::iterator_property_map< int*, id_map, int, int&> prime_map(&primes[1]); std::cout << "The fifth prime number is " << get_value_three(prime_map) <<std::endl; return 0; }
boost/property_map/property_map.hpp
Parameter | Description | Default |
---|---|---|
Iterator | Must be a model of Random Access Iterator. | |
OffsetMap | Must be a model of Readable Property Map and the value type must be convertible to the difference type of the iterator. | |
T | The value type of the iterator. | std::iterator_traits<RandomAccessIterator>::value_type |
R | The reference type of the iterator. | std::iterator_traits<RandomAccessIterator>::reference |
In addition to the methods and functions required by Lvalue Property Map, this class has the following members.
property_traits<iterator_property_map>::value_typeThis is the same type as std::iterator_traits<Iterator>::value_type.
iterator_property_map(Iterator i)Constructor. The OffsetMap is default constructed.
iterator_property_map(Iterator i, OffsetMap m)Constructor.
reference operator[](const key_type& v) constThe operator bracket for property access. The reference is from std::iterator_traits<Iterator> and the key_type is from boost::property_traits<OffsetMap>.
template <class RAIter, class OffsetMap> iterator_property_map<RAIter, OffsetMap, typename std::iterator_traits<RAIter>::value_type, typename std::iterator_traits<RAIter>::reference > make_iterator_property_map(RAIter iter, OffsetMap omap)A function for conveniently creating an iterator map.
template <class RAIter, class OffsetMap, class ValueType> iterator_property_map<RAIter, OffsetMap, typename std::iterator_traits<RAIter>::value_type, typename std::iterator_traits<RAIter>::reference > make_iterator_property_map(RAIter iter, OffsetMap omap, ValueType dummy_arg)Use this function instead of the 2-argument version if your compiler does not support partial specialization (like Visual C++).
Copyright © 2000-2012 |
Jeremy Siek, Univ.of Notre Dame (jsiek@osl.iu.edu) |