<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.7.5/cppdoc/structignite_1_1binary_1_1CollectionType.html" />

<META NAME="ROBOTS" CONTENT="NOINDEX">

<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>&nbsp; Apache Ignite C++: ignite::binary::CollectionType Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="ignite_logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">&nbsp; Apache Ignite C++
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceignite.html">ignite</a></li><li class="navelem"><a class="el" href="namespaceignite_1_1binary.html">binary</a></li><li class="navelem"><a class="el" href="structignite_1_1binary_1_1CollectionType.html">CollectionType</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="structignite_1_1binary_1_1CollectionType-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ignite::binary::CollectionType Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Binary collection types.  
 <a href="structignite_1_1binary_1_1CollectionType.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="binary__consts_8h_source.html">binary_consts.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a03610e138c65428dc81c08f62b7729bb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structignite_1_1binary_1_1CollectionType.html#a03610e138c65428dc81c08f62b7729bb">Type</a> { <br />
&#160;&#160;<a class="el" href="structignite_1_1binary_1_1CollectionType.html#a03610e138c65428dc81c08f62b7729bba0dbcb37b8e35ac72ed89b53305ed3596">UNDEFINED</a> = 0, 
<a class="el" href="structignite_1_1binary_1_1CollectionType.html#a03610e138c65428dc81c08f62b7729bbacbc1082191c5452d77c8ffcfc012b8be">ARRAY_LIST</a> = 1, 
<a class="el" href="structignite_1_1binary_1_1CollectionType.html#a03610e138c65428dc81c08f62b7729bba799e3f2d297fd527b246e0e04b759d7a">LINKED_LIST</a> = 2, 
<a class="el" href="structignite_1_1binary_1_1CollectionType.html#a03610e138c65428dc81c08f62b7729bba9250b49861e956b3eeb1f2ad696af85d">HASH_SET</a> = 3, 
<br />
&#160;&#160;<a class="el" href="structignite_1_1binary_1_1CollectionType.html#a03610e138c65428dc81c08f62b7729bba1dfcbfba3e35b40ec8db00793d0766ab">LINKED_HASH_SET</a> = 4
<br />
 }</td></tr>
<tr class="separator:a03610e138c65428dc81c08f62b7729bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Binary collection types. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a03610e138c65428dc81c08f62b7729bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03610e138c65428dc81c08f62b7729bb">&#9670;&nbsp;</a></span>Type</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="structignite_1_1binary_1_1CollectionType.html#a03610e138c65428dc81c08f62b7729bb">ignite::binary::CollectionType::Type</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a03610e138c65428dc81c08f62b7729bba0dbcb37b8e35ac72ed89b53305ed3596"></a>UNDEFINED&#160;</td><td class="fielddoc"><p>Undefined. </p>
<p>Maps to ArrayList in Java. </p>
</td></tr>
<tr><td class="fieldname"><a id="a03610e138c65428dc81c08f62b7729bbacbc1082191c5452d77c8ffcfc012b8be"></a>ARRAY_LIST&#160;</td><td class="fielddoc"><p>Array list. </p>
<p>Maps to ArrayList in Java. </p>
</td></tr>
<tr><td class="fieldname"><a id="a03610e138c65428dc81c08f62b7729bba799e3f2d297fd527b246e0e04b759d7a"></a>LINKED_LIST&#160;</td><td class="fielddoc"><p>Linked list. </p>
<p>Maps to LinkedList in Java. </p>
</td></tr>
<tr><td class="fieldname"><a id="a03610e138c65428dc81c08f62b7729bba9250b49861e956b3eeb1f2ad696af85d"></a>HASH_SET&#160;</td><td class="fielddoc"><p>Hash set. </p>
<p>Maps to HashSet in Java. </p>
</td></tr>
<tr><td class="fieldname"><a id="a03610e138c65428dc81c08f62b7729bba1dfcbfba3e35b40ec8db00793d0766ab"></a>LINKED_HASH_SET&#160;</td><td class="fielddoc"><p>Linked hash set. </p>
<p>Maps to LinkedHashSet in Java. </p>
</td></tr>
</table>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="binary__consts_8h_source.html">binary_consts.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 4 2019 17:13:58 for &nbsp; Apache Ignite C++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
