<ahref="vector__map_8h.html">Go to the documentation of this file.</a><divclass="fragment"><divclass="line"><aname="l00001"></a><spanclass="lineno"> 1</span> <spanclass="comment">// Copyright 2010-2021 Google LLC</span></div><divclass="line"><aname="l00002"></a><spanclass="lineno"> 2</span> <spanclass="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><divclass="line"><aname="l00003"></a><spanclass="lineno"> 3</span> <spanclass="comment">// you may not use this file except in compliance with the License.</span></div><divclass="line"><aname="l00004"></a><spanclass="lineno"> 4</span> <spanclass="comment">// You may obtain a copy of the License at</span></div><divclass="line"><aname="l00005"></a><spanclass="lineno"> 5</span> <spanclass="comment">//</span></div><divclass="line"><aname="l00006"></a><spanclass="lineno"> 6</span> <spanclass="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><divclass="line"><aname="l00007"></a><spanclass="lineno"> 7</span> <spanclass="comment">//</span></div><divclass="line"><aname="l00008"></a><spanclass="lineno"> 8</span> <spanclass="comment">// Unless required by applicable law or agreed to in writing, software</span></div><divclass="line"><aname="l00009"></a><spanclass="lineno"> 9</span> <spanclass="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><divclass="line"><aname="l00010"></a><spanclass="lineno"> 10</span> <spanclass="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment">// See the License for the specific language governing permissions and</span></div><divclass="line"><aname="l00012"></a><spanclass="lineno"> 12</span> <spanclass="comment">// limitations under the License.</span></div><divclass="line"><aname="l00013"></a><spanclass="lineno"> 13</span> </div><divclass="line"><aname="l00014"></a><spanclass="lineno"> 14</span> <spanclass="comment">// Vector with map from element to index in the vector.</span></div><divclass="line"><aname="l00015"></a><spanclass="lineno"> 15</span> </div><divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> <spanclass="preprocessor">#ifndef OR_TOOLS_UTIL_VECTOR_MAP_H_</span></div><divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> <spanclass="preprocessor">#define OR_TOOLS_UTIL_VECTOR_MAP_H_</span></div><divclass="line"><aname="l00018"></a><spanclass="lineno"> 18</span> </div><divclass="line"><aname="l00019"></a><spanclass="lineno"> 19</span> <spanclass="preprocessor">#include <vector></span></div><divclass="line"><aname="l00020"></a><spanclass="lineno"> 20</span> </div><divclass="line"><aname="l00021"></a><spanclass="lineno"> 21</span> <spanclass="preprocessor">#include "absl/container/flat_hash_map.h"</span></div><divclass="line"><aname="l00022"></a><spanclass="lineno"> 22</span> <spanclass="preprocessor">#include "<aclass="code"href="map__util_8h.html">ortools/base/map_util.h</a>"</span></div><divclass="line"><aname="l00023"></a><spanclass="lineno"> 23</span> </div><divclass="line"><aname="l00024"></a><spanclass="lineno"> 24</span> <spanclass="keyword">namespace </span><aclass="code"href="namespaceoperations__research.html">operations_research</a> {</div><divclass="line"><aname="l00025"></a><spanclass="lineno"> 25</span> </div><divclass="line"><aname="l00026"></a><spanclass="lineno"> 26</span> <spanclass="comment">// This class stores a vector of distinct elements, as well as a map</span></div><divclass="line"><aname="l00027"></a><spanclass="lineno"> 27</span> <spanclass="comment">// from elements to index to find the index in the vector.</span></
<divclass="ttc"id="classoperations__research_1_1_vector_map_html_a2fc97dce62b7053449cc868607540dba"><divclass="ttname"><ahref="classoperations__research_1_1_vector_map.html#a2fc97dce62b7053449cc868607540dba">operations_research::VectorMap::const_iterator</a></div><divclass="ttdeci">const T * const_iterator</div><divclass="ttdef"><b>Definition:</b><ahref="vector__map_8h_source.html#l00100">vector_map.h:100</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_vector_map_html_a808e9e47c129687f33ad46a00c642cd4"><divclass="ttname"><ahref="classoperations__research_1_1_vector_map.html#a808e9e47c129687f33ad46a00c642cd4">operations_research::VectorMap::Element</a></div><divclass="ttdeci">const T & Element(int index) const</div><divclass="ttdef"><b>Definition:</b><ahref="vector__map_8h_source.html#l00072">vector_map.h:72</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_vector_map_html_af31997ebd277a4c0d81b30f7b793d65d"><divclass="ttname"><ahref="classoperations__research_1_1_vector_map.html#af31997ebd277a4c0d81b30f7b793d65d">operations_research::VectorMap::Index</a></div><divclass="ttdeci">int Index(const T &element) const</div><divclass="ttdef"><b>Definition:</b><ahref="vector__map_8h_source.html#l00061">vector_map.h:61</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_vector_map_html_a2950e0a6095bb531a38185d9cb47f7e6"><divclass="ttname"><ahref="classoperations__research_1_1_vector_map.html#a2950e0a6095bb531a38185d9cb47f7e6">operations_research::VectorMap::pointer</a></div><divclass="ttdeci">const T * pointer</div><divclass="ttdef"><b>Definition:</b><ahref="vector__map_8h_source.html#l00094">vector_map.h:94</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_vector_map_html_a907b6c90ba3b3598d306f5b7c30b5023"><divclass="ttname"><ahref="classoperations__research_1_1_vector_map.html#a907b6c90ba3b3598d306f5b7c30b5023">operations_research::VectorMap::IndexOrDie</a></div><divclass="ttdeci">int IndexOrDie(const T &element) const</div><divclass="ttdef"><b>Definition:</b><ahref="vector__map_8h_source.html#l00055">vector_map.h:55</a></div></div>
<divclass="ttc"id="namespacegtl_html_abce27d097bc5680207b294bdad75f59f"><divclass="ttname"><ahref="namespacegtl.html#abce27d097bc5680207b294bdad75f59f">gtl::FindOrDie</a></div><divclass="ttdeci">const Collection::value_type::second_type & FindOrDie(const Collection &collection, const typename Collection::value_type::first_type &key)</div><divclass="ttdef"><b>Definition:</b><ahref="map__util_8h_source.html#l00206">map_util.h:206</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_vector_map_html_a1f665a2e76399cbf821a5ef03eb5d400"><divclass="ttname"><ahref="classoperations__research_1_1_vector_map.html#a1f665a2e76399cbf821a5ef03eb5d400">operations_research::VectorMap::Add</a></div><divclass="ttdeci">int Add(const T &element)</div><divclass="ttdef"><b>Definition:</b><ahref="vector__map_8h_source.html#l00034">vector_map.h:34</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_vector_map_html_a4fef7a13b0a31eb10c0ae4c731a0e2d3"><divclass="ttname"><ahref="classoperations__research_1_1_vector_map.html#a4fef7a13b0a31eb10c0ae4c731a0e2d3">operations_research::VectorMap::reference</a></div><divclass="ttdeci">const T & reference</div><divclass="ttdef"><b>Definition:</b><ahref="vector__map_8h_source.html#l00095">vector_map.h:95</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_vector_map_html_af9ba3e25df088c62f7d535b91672cda9"><divclass="ttname"><ahref="classoperations__research_1_1_vector_map.html#af9ba3e25df088c62f7d535b91672cda9">operations_research::VectorMap::const_reference</a></div><divclass="ttdeci">const T & const_reference</div><divclass="ttdef"><b>Definition:</b><ahref="vector__map_8h_source.html#l00096">vector_map.h:96</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_vector_map_html_a9f752d420efd9bd451bed6759248617c"><divclass="ttname"><ahref="classoperations__research_1_1_vector_map.html#a9f752d420efd9bd451bed6759248617c">operations_research::VectorMap::Add</a></div><divclass="ttdeci">void Add(const std::vector< T >&elements)</div><divclass="ttdef"><b>Definition:</b><ahref="vector__map_8h_source.html#l00048">vector_map.h:48</a></div></div>
<divclass="ttc"id="namespaceoperations__research_html"><divclass="ttname"><ahref="namespaceoperations__research.html">operations_research</a></div><divclass="ttdoc">Collection of objects used to extend the Constraint Solver library.</div><divclass="ttdef"><b>Definition:</b><ahref="dense__doubly__linked__list_8h_source.html#l00021">dense_doubly_linked_list.h:21</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_vector_map_html_a4b9946b6fc9ff762ac72124ae91777bc"><divclass="ttname"><ahref="classoperations__research_1_1_vector_map.html#a4b9946b6fc9ff762ac72124ae91777bc">operations_research::VectorMap::Contains</a></div><divclass="ttdeci">bool Contains(const T &element) const</div><divclass="ttdef"><b>Definition:</b><ahref="vector__map_8h_source.html#l00067">vector_map.h:67</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_vector_map_html_ab3f0073680dabba9d2778d9a6f35aed7"><divclass="ttname"><ahref="classoperations__research_1_1_vector_map.html#ab3f0073680dabba9d2778d9a6f35aed7">operations_research::VectorMap::operator[]</a></div><divclass="ttdeci">const T & operator[](int index) const</div><divclass="ttdef"><b>Definition:</b><ahref="vector__map_8h_source.html#l00078">vector_map.h:78</a></div></div>