#include <algorithm>#include <cstddef>#include <cstdlib>#include <limits>#include <new>#include <vector>#include "ortools/base/integral_types.h"#include "ortools/base/logging.h"#include "ortools/base/macros.h"#include "ortools/graph/iterators.h"Go to the source code of this file.
Namespaces | |
| util | |
| Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. | |
Macros | |
| #define | DEFINE_RANGE_BASED_ARC_ITERATION(c, t, e) |
| Macros to wrap old style iteration into the new range-based for loop style. More... | |
| #define | DEFINE_STL_ITERATOR_FUNCTIONS(iterator_class_name) |
| Adapt our old iteration style to support range-based for loops. More... | |
Typedefs | |
| typedef ListGraph | util::Graph |
| Defining the simplest Graph interface as Graph for convenience. More... | |
Functions | |
| template<class IntVector , class Array , class ElementType > | |
| void | util::PermuteWithExplicitElementType (const IntVector &permutation, Array *array_to_permute, ElementType unused) |
| Permutes the elements of array_to_permute: element #i will be moved to position permutation[i]. More... | |
| template<class IntVector , class Array > | |
| void | util::Permute (const IntVector &permutation, Array *array_to_permute) |
| template<class IntVector > | |
| void | util::Permute (const IntVector &permutation, std::vector< bool > *array_to_permute) |
| We need a specialization for std::vector<bool>, because the default code uses (*array_to_permute)[0] as ElementType, which isn't 'bool' in that case. More... | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ListGraph, Outgoing, Base::kNilArc) | |
| ListGraph implementation -------------------------------------------------—. More... | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (StaticGraph, Outgoing, DirectArcLimit(node)) | |
| StaticGraph implementation -----------------------------------------------—. More... | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ReverseArcListGraph, Outgoing, Base::kNilArc) | |
| ReverseArcListGraph implementation ---------------------------------------—. More... | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ReverseArcListGraph, Incoming, Base::kNilArc) | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ReverseArcListGraph, OutgoingOrOppositeIncoming, Base::kNilArc) | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ReverseArcListGraph, OppositeIncoming, Base::kNilArc) | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ReverseArcStaticGraph, Outgoing, DirectArcLimit(node)) | |
| ReverseArcStaticGraph implementation -------------------------------------—. More... | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ReverseArcStaticGraph, Incoming, ReverseArcLimit(node)) | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ReverseArcStaticGraph, OutgoingOrOppositeIncoming, DirectArcLimit(node)) | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ReverseArcStaticGraph, OppositeIncoming, ReverseArcLimit(node)) | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ReverseArcMixedGraph, Outgoing, DirectArcLimit(node)) | |
| ReverseArcMixedGraph implementation --------------------------------------—. More... | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ReverseArcMixedGraph, Incoming, Base::kNilArc) | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ReverseArcMixedGraph, OutgoingOrOppositeIncoming, DirectArcLimit(node)) | |
| util::DEFINE_RANGE_BASED_ARC_ITERATION (ReverseArcMixedGraph, OppositeIncoming, Base::kNilArc) | |
| #define DEFINE_RANGE_BASED_ARC_ITERATION | ( | c, | |
| t, | |||
| e | |||
| ) |
Macros to wrap old style iteration into the new range-based for loop style.
The parameters are:
| #define DEFINE_STL_ITERATOR_FUNCTIONS | ( | iterator_class_name | ) |
Adapt our old iteration style to support range-based for loops.
Add typedefs required by std::iterator_traits.