X7ROOT File Manager
Current Path:
/usr/include/c++/8/parallel
usr
/
include
/
c++
/
8
/
parallel
/
ðŸ“
..
📄
algo.h
(78.15 KB)
📄
algobase.h
(16.75 KB)
📄
algorithm
(1.35 KB)
📄
algorithmfwd.h
(31.45 KB)
📄
balanced_quicksort.h
(16.55 KB)
📄
base.h
(12.08 KB)
📄
basic_iterator.h
(1.55 KB)
📄
checkers.h
(2.25 KB)
📄
compatibility.h
(3.7 KB)
📄
compiletime_settings.h
(2.8 KB)
📄
equally_split.h
(3.28 KB)
📄
features.h
(3.46 KB)
📄
find.h
(13.27 KB)
📄
find_selectors.h
(6.83 KB)
📄
for_each.h
(3.85 KB)
📄
for_each_selectors.h
(10.32 KB)
📄
iterator.h
(5.54 KB)
📄
list_partition.h
(6.39 KB)
📄
losertree.h
(27.92 KB)
📄
merge.h
(9.35 KB)
📄
multiseq_selection.h
(21.56 KB)
📄
multiway_merge.h
(68.88 KB)
📄
multiway_mergesort.h
(14.91 KB)
📄
numeric
(20.23 KB)
📄
numericfwd.h
(7.32 KB)
📄
omp_loop.h
(3.94 KB)
📄
omp_loop_static.h
(4.01 KB)
📄
par_loop.h
(4.45 KB)
📄
parallel.h
(1.54 KB)
📄
partial_sum.h
(7.3 KB)
📄
partition.h
(14.61 KB)
📄
queue.h
(5.41 KB)
📄
quicksort.h
(5.98 KB)
📄
random_number.h
(4.13 KB)
📄
random_shuffle.h
(18.24 KB)
📄
search.h
(5.26 KB)
📄
set_operations.h
(14.25 KB)
📄
settings.h
(12.17 KB)
📄
sort.h
(7.53 KB)
📄
tags.h
(5.84 KB)
📄
types.h
(3.63 KB)
📄
unique_copy.h
(6.02 KB)
📄
workstealing.h
(9.39 KB)
Editing: iterator.h
// -*- C++ -*- // Copyright (C) 2007-2018 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the terms // of the GNU General Public License as published by the Free Software // Foundation; either version 3, or (at your option) any later // version. // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // General Public License for more details. // Under Section 7 of GPL version 3, you are granted additional // permissions described in the GCC Runtime Library Exception, version // 3.1, as published by the Free Software Foundation. // You should have received a copy of the GNU General Public License and // a copy of the GCC Runtime Library Exception along with this program; // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // <http://www.gnu.org/licenses/>. /** @file parallel/iterator.h * @brief Helper iterator classes for the std::transform() functions. * This file is a GNU parallel extension to the Standard C++ Library. */ // Written by Johannes Singler. #ifndef _GLIBCXX_PARALLEL_ITERATOR_H #define _GLIBCXX_PARALLEL_ITERATOR_H 1 #include <parallel/basic_iterator.h> #include <bits/stl_pair.h> namespace __gnu_parallel { /** @brief A pair of iterators. The usual iterator operations are * applied to both child iterators. */ template<typename _Iterator1, typename _Iterator2, typename _IteratorCategory> class _IteratorPair : public std::pair<_Iterator1, _Iterator2> { private: typedef std::pair<_Iterator1, _Iterator2> _Base; public: typedef _IteratorCategory iterator_category; typedef void value_type; typedef std::iterator_traits<_Iterator1> _TraitsType; typedef typename _TraitsType::difference_type difference_type; typedef _IteratorPair* pointer; typedef _IteratorPair& reference; _IteratorPair() { } _IteratorPair(const _Iterator1& __first, const _Iterator2& __second) : _Base(__first, __second) { } // Pre-increment operator. _IteratorPair& operator++() { ++_Base::first; ++_Base::second; return *this; } // Post-increment operator. const _IteratorPair operator++(int) { return _IteratorPair(_Base::first++, _Base::second++); } // Pre-decrement operator. _IteratorPair& operator--() { --_Base::first; --_Base::second; return *this; } // Post-decrement operator. const _IteratorPair operator--(int) { return _IteratorPair(_Base::first--, _Base::second--); } // Type conversion. operator _Iterator2() const { return _Base::second; } _IteratorPair& operator=(const _IteratorPair& __other) { _Base::first = __other.first; _Base::second = __other.second; return *this; } _IteratorPair operator+(difference_type __delta) const { return _IteratorPair(_Base::first + __delta, _Base::second + __delta); } difference_type operator-(const _IteratorPair& __other) const { return _Base::first - __other.first; } }; /** @brief A triple of iterators. The usual iterator operations are applied to all three child iterators. */ template<typename _Iterator1, typename _Iterator2, typename _Iterator3, typename _IteratorCategory> class _IteratorTriple { public: typedef _IteratorCategory iterator_category; typedef void value_type; typedef typename std::iterator_traits<_Iterator1>::difference_type difference_type; typedef _IteratorTriple* pointer; typedef _IteratorTriple& reference; _Iterator1 _M_first; _Iterator2 _M_second; _Iterator3 _M_third; _IteratorTriple() { } _IteratorTriple(const _Iterator1& __first, const _Iterator2& __second, const _Iterator3& __third) { _M_first = __first; _M_second = __second; _M_third = __third; } // Pre-increment operator. _IteratorTriple& operator++() { ++_M_first; ++_M_second; ++_M_third; return *this; } // Post-increment operator. const _IteratorTriple operator++(int) { return _IteratorTriple(_M_first++, _M_second++, _M_third++); } // Pre-decrement operator. _IteratorTriple& operator--() { --_M_first; --_M_second; --_M_third; return *this; } // Post-decrement operator. const _IteratorTriple operator--(int) { return _IteratorTriple(_M_first--, _M_second--, _M_third--); } // Type conversion. operator _Iterator3() const { return _M_third; } _IteratorTriple& operator=(const _IteratorTriple& __other) { _M_first = __other._M_first; _M_second = __other._M_second; _M_third = __other._M_third; return *this; } _IteratorTriple operator+(difference_type __delta) const { return _IteratorTriple(_M_first + __delta, _M_second + __delta, _M_third + __delta); } difference_type operator-(const _IteratorTriple& __other) const { return _M_first - __other._M_first; } }; } #endif /* _GLIBCXX_PARALLEL_ITERATOR_H */
Upload File
Create Folder