Files
doc-fr/reference/ds/ds.deque.xml
2024-08-10 05:50:12 +01:00

168 lines
5.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: Fan2Shrek Status: ready -->
<!-- Reviewed: yes -->
<reference xml:id="class.ds-deque" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>La classe Deque</title>
<titleabbrev>Ds\Deque</titleabbrev>
<partintro>
<!-- {{{ Ds\Deque intro -->
<section xml:id="ds-deque.intro">
&reftitle.intro;
<para>
Un Deque (prononcé “deck”) est une séquence de valeurs
dans un tampon contigu qui grandit et rétrécit automatiquement.
Le nom est une abréviation courante de “double-ended queue” et est utilisé
en interne par <classname>Ds\Queue</classname>.
</para>
<para>
Deux pointeurs sont utilisés pour garder une trace d'une tête et d'une queue. Les pointeurs peuvent
“enrouler” la fin du tampon, ce qui évite de déplacer d'autres valeurs pour
faire de la place. Cela rend shift et unshift très rapides —
quelque chose qu'un <classname>Ds\Vector</classname> ne peut pas concurrencer.
</para>
<para>
Accéder à une valeur par index nécessite une traduction entre l'index et sa
position correspondante dans le tampon : <code>((head + position) % capacity)</code>.
</para>
</section>
<!-- }}} -->
<section xml:id="ds-deque.strengths">
<title xmlns="http://docbook.org/ns/docbook">Forces</title>
<para>
<simplelist>
<member>Support de la syntaxe de tableau (crochets).</member>
<member>Utilise moins de mémoire globale qu'un &array; pour le même nombre de valeurs.</member>
<member>Libère automatiquement la mémoire allouée lorsque sa taille devient suffisamment faible.</member>
<member>
<function>get</function>,
<function>set</function>,
<function>push</function>,
<function>pop</function>,
<function>shift</function>, et
<function>unshift</function> sont tous de complexité O(1).
</member>
</simplelist>
</para>
</section>
<section xml:id="ds-deque.weaknesses">
<title xmlns="http://docbook.org/ns/docbook">Faiblesses</title>
<para>
<simplelist>
<member>La capacité doit être une puissance de 2.</member>
<member>
<function>insert</function> et
<function>remove</function> sont de complexité O(n).
</member>
</simplelist>
</para>
</section>
<section xml:id="ds-deque.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>Ds\Deque</classname></ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>Ds\Deque</classname>
</ooclass>
<oointerface>
<interfacename>Ds\Sequence</interfacename>
</oointerface>
<oointerface>
<interfacename>ArrayAccess</interfacename>
</oointerface>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="ds-deque.constants.min-capacity">Ds\Deque::MIN_CAPACITY</varname>
<initializer>8</initializer>
</fieldsynopsis>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.ds-deque')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis)">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
<!-- {{{ Ds\Deque constants -->
<section xml:id="ds-deque.constants">
&reftitle.constants;
<variablelist>
<varlistentry xml:id="ds-deque.constants.min-capacity">
<term><constant>Ds\Deque::MIN_CAPACITY</constant></term>
<listitem>
<para></para>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- }}} -->
<section role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>PECL ds 1.3.0</entry>
<entry>
La classe implémente maintenant <interfacename>ArrayAccess</interfacename>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</section>
</partintro>
&reference.ds.ds.entities.deque;
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->