1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This is the developer's manual for Aspell.
Copyright © 2002, 2003, 2004, 2006 Kevin Atkinson.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A
copy of the license is included in the section entitled "GNU Free
Documentation License". -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Aspell Developer’s Manual: Data Structures</title>
<meta name="description" content="Aspell spell checker developer’s manual.">
<meta name="keywords" content="Aspell Developer’s Manual: Data Structures">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html#Top" rel="up" title="Top">
<link href="Mk_002dSrc-Script.html#Mk_002dSrc-Script" rel="next" title="Mk-Src Script">
<link href="Filter-Modes.html#Filter-Modes" rel="prev" title="Filter Modes">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
table:not([class]), table:not([class]) th, table:not([class]) td {
padding: 2px 0.3em 2px 0.3em;
border: thin solid #D0D0D0;
border-collapse: collapse;
}
-->
</style>
<meta name=viewport content="width=device-width, initial-scale=1">
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Data-Structures"></a>
<div class="header">
<p>
Next: <a href="Mk_002dSrc-Script.html#Mk_002dSrc-Script" accesskey="n" rel="next">Mk-Src Script</a>, Previous: <a href="Filter-Modes.html#Filter-Modes" accesskey="p" rel="prev">Filter Modes</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>
<hr>
<a name="Data-Structures-1"></a>
<h2 class="chapter">13 Data Structures</h2>
<p>Whenever possible you should try to use one of the data structures
available. If the data structures do not provide enough functionality
for your needs you should consider enhancing them rather than writing
something from scratch.
</p>
<a name="Vector"></a>
<h3 class="section">13.1 Vector</h3>
<p>The <code>vector</code> class is defined in <samp>vector.hpp</samp> and works the
same way as the standard STL <code>vector</code> does except that it doesn’t
have as many constructors.
</p>
<a name="BasicList"></a>
<h3 class="section">13.2 BasicList</h3>
<p><code>BasicList</code> is a simple list structure which can either be
implemented as a singly or doubly linked list. It is defined in
<samp>basic_list.hpp</samp>.
</p>
<a name="StringMap"></a>
<h3 class="section">13.3 StringMap</h3>
<p><code>StringMap</code> is an associative array for strings. You should try
to use this when ever possible to avoid code bloat. It is defined in
<samp>string_map.hpp</samp>.
</p>
<a name="Hash-Tables"></a>
<h3 class="section">13.4 Hash Tables</h3>
<p>Several hash tables are provided when <code>StringMap</code> is not
appropriate. These hash tables provide a <code>hash_set</code>,
<code>hash_multiset</code>, <code>hash_map</code> and <code>hash_multimap</code> which
are very similar to SGI’s STL implementation with a few exceptions.
It is defined in <samp>hash.hpp</samp>.
</p>
<a name="BlockSList"></a>
<h3 class="section">13.5 BlockSList</h3>
<p><code>BlockSList</code> provided a pool of nodes which can be used for
singly linked lists. It is defined in <samp>block_slist.hpp</samp>.
</p>
</body>
</html>
|