source: presentations/trunk/QtOverview-2010-ESA/STL.html@ 317

Last change on this file since 317 was 317, checked in by garnier, 15 years ago

nouvelle pres pour ESA 2010

File size: 24.2 KB
RevLine 
[317]1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" lang="en-US">
3<head profile="http://purl.org/net/uriprofile/">
4
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6 <meta http-equiv="Content-Language" content="ja" />
7 <meta http-equiv="Content-Style-Type" content="text/css" />
8 <meta http-equiv="Content-Script-Type" content="text/javascript" />
9 <title>Standard Template Library</title>
10
11 <meta name="author" content="Enseignement LAL" />
12 <meta name="description" content="Bonne pratiques" />
13 <meta name="keywords" content="Cours Outil Developpement logiciel" />
14 <link rev="made" href="mailto:ens@lal.in2p3.fr" />
15 <link rel="stylesheet" href="../../tags/Tools/v7/css/screen.css" type="text/css" media="screen, projection, tv, print" />
16 <link rel="stylesheet" href="../../tags/Tools/v7/Slidy/slidy-toc.css" type="text/css" media="screen, projection, print" />
17 <script src="../../tags/Tools/v7/Slidy/slidy.js" type="text/javascript"></script>
18 <script src="../../tags/Tools/v7/Slidy/slidy-toc.js" type="text/javascript"></script>
19</head>
20
21<body style="font-size: 18pt;">
22
23
24<!-- Introduction [Start] -->
25<div style=" display: block; visibility: visible; position: absolute;" class="slide" id="cover">
26
27 <div class="callout">
28 <p id="title">
29 <br />
30 Geant4 Visualization : Qt Driver
31 </p>
32 </div>
33 <p id="subtitle">Developments for Geant4.9.4</p>
34 <p id="event">Geant4 Workshop</p>
35 <p id="author">Laurent Garnier</p>
36 <p
37</div>
38
39
40<!-- Diapo [Introduction] -->
41<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
42
43 <h1>Introduction</h1>
44 <p><strong>STL</strong> est une biblioth&egrave;que standard du C++</p>
45 <ul class="non-incremental">
46 <li>Fait partie du langage</li>
47 <li>Tout le code est contenu dans les fichiers 'header', pas de 'libraries' &agrave; <em>linker</em></li>
48 <li>Enti&egrave;rement d&eacute;finie dans l'espace de nommage <em>std</em></li>
49 <li>Repose sur le concept de g&eacute;n&eacute;ricit&eacute; (<em>template</em>) permettant de param&eacute;trer le type d'&eacute;l&eacute;ment utilis&eacute;</li>
50 <li><em><strong>Particuli&egrave;rement efficace</strong></em></li>
51 </ul>
52</div>
53
54
55<!-- Diapo [Organisation] -->
56<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
57
58 <h1>Organisation</h1>
59 <p>La librarie STL est organis&eacute;e en plusieurs parties. Il existe principalement 3 types d'&eacute;l&eacute;ments</p>
60 <div class="incremental">
61 <ul>
62 <li>
63 <strong>Les conteneurs</strong><br/>
64 Permettent de contenir des donn&eacute;es
65 </li>
66 <li>
67 <strong>Les it&eacute;rateurs</strong><br />
68 Permettent aux algorithmes de manipuler les conteneurs :
69 r&eacute;cup&eacute;rer une donn&eacute;e et passer &agrave; la suivante
70 </li>
71 <li>
72 <strong>Les algorithmes</strong><br />
73 Permettent de manipuler les donn&eacute;es d'un conteneur en acc&eacute;dant aux donn&eacute;es
74 via les it&eacute;rateurs
75 </li>
76 </ul>
77 <div>
78 <p>On ajoute</p>
79 <ul>
80 <li>
81 <strong>Les strings</strong><br/>
82 Qui d&eacute;finissent les chaines de caract&egrave;res comme type <i>normal</i> (copie, assignation, comparaison,...)
83 </li>
84 </ul>
85 </div>
86 </div>
87</div>
88
89
90<!-- Diapo [Conteneurs (1)] -->
91<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
92
93 <h1>Conteneurs</h1>
94 <ul class="incremental">
95 <li class="non-incremental">
96 Il s'agit de structures <strong>algorithmiques</strong> permettant :
97 <ul>
98 <li>d'organiser un ensemble de donn&eacute;es <strong>de m&ecirc;me type</strong> en s&eacute;quence,</li>
99 <li>puis de <strong>parcourir</strong> ces donn&eacute;es</li>
100 </ul>
101 </li>
102 <li>Exemples :
103 <ul>
104 <li>les listes (<strong>std::list</strong>)</li>
105 <li>les tableaux (<strong>std::vector</strong>)</li>
106 <li>les listes tri&eacute;es (<strong>std::set</strong>)</li>
107 <li>les listes d'associations (<strong>std::map</strong>)</li>
108 </ul>
109 </li>
110 <li>La d&eacute;finition d'un conteneur est ind&eacute;pendante du type des objets contenus</li>
111 <li>On sp&eacute;cifie ce qu'il <em>contient</em> lors de la d&eacute;claration de la variable</li>
112 <li>Allocation dynamique et automatique de la m&eacute;moire</li>
113 </ul>
114</div>
115
116<!-- Diapo [Conteneurs (2)] -->
117<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
118
119 <h1>Conteneurs ...</h1>
120
121 <div class="incremental">
122 <div>
123 <strong>Ordonn&eacute;s</strong> (position ind&eacute;pendante de la valeur)
124 <div style="padding-left: 5%; padding-top: 1%">
125 <table class="noborder">
126 <tbody>
127 <tr>
128 <td>
129 <em>List</em> :<br />liste doublement cha&icirc;n&eacute;e
130 </td>
131 <td style="text-align: center;">
132 <br />
133 <img src="./STL_images/list.png" alt="Image d'une list" width="50%"/>
134 </td>
135 </tr>
136 <tr>
137 <td>
138 <em>Vector</em> :<br />tableau &agrave; 1 dimension
139 </td>
140 <td style="text-align: center;">
141 <br />
142 <img src="./STL_images/vector.png" alt="Image d'un vecteur" width="50%"/>
143 </td>
144 </tr>
145 </tbody>
146 </table>
147 </div>
148 </div>
149 <div style="padding-top: 5%;">
150 <strong>Tri&eacute;s</strong> (position d&eacute;pendante de la valeur)
151 <div style="padding-left: 5%; padding-top: 1%">
152 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
153 <tbody>
154 <tr>
155 <td>
156 <em>Set/Multiset</em> :<br />ensemble
157 </td>
158 <td style="text-align: center;">
159 <img src="./STL_images/set.png" alt="Image d'un set/multiset" width="30%"/>
160 </td>
161 </tr>
162 <tr>
163 <td>
164 <em>Map/Multimap</em> :<br />tableau associatif
165 </td>
166 <td style="text-align: center;">
167 <img src="./STL_images/map.png" alt="Image d'un map/multimap" width="30%"/>
168 </td>
169 </tr>
170 </tbody>
171 </table>
172 </div>
173 </div>
174 </div>
175</div>
176
177
178<!-- Diapo [List] -->
179<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
180
181 <h1>List</h1>
182
183 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
184 <tbody>
185 <tr>
186 <td style="width: 30%; valign: top">
187 Utilisation des listes
188 </td>
189 <td>
190 <pre>
191 #include &lt;iostream&gt;
192 <font color="red"><strong>#include &lt;list&gt;</strong></font>
193
194 int main()
195 {
196 std::list&lt;int&gt; l;
197
198 l.push_front(3);
199 l.push_front(2);
200 l.push_back(4);
201
202 l.pop_front();
203 l.pop_back();
204
205 std::cout &lt;&lt; l.front() &lt;&lt; std::endl;
206 std::cout &lt;&lt; l.back() &lt;&lt; std::endl;
207
208 return 0;
209 }
210 </pre>
211 </td>
212 </tr>
213 </tbody>
214 </table>
215
216</div>
217
218<!-- Diapo [List] -->
219<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
220
221 <h1>List</h1>
222
223 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
224 <tbody>
225 <tr>
226 <td style="width: 30%; valign: top">
227 Comme pour tous les composants <em>STL</em>,
228 il faut toujours se placer dans l'<span style="color: red">espace de nommage std::</span>
229 </td>
230 <td>
231 <pre>
232 #include &lt;iostream&gt;
233 #include &lt;list&gt;
234
235 int main()
236 {
237 <font color="red"><strong>std::</strong></font>list&lt;int&gt; l;
238
239 l.push_front(3);
240 l.push_front(2);
241 l.push_back(4);
242
243 l.pop_front();
244 l.pop_back();
245
246 std::cout &lt;&lt; l.front() &lt;&lt; std::endl;
247 std::cout &lt;&lt; l.back() &lt;&lt; std::endl;
248
249 return 0;
250 }
251 </pre>
252 </td>
253 </tr>
254 </tbody>
255 </table>
256
257</div>
258
259<!-- Diapo [List] -->
260<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
261
262 <h1>List</h1>
263
264 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
265 <tbody>
266 <tr>
267 <td style="width: 30%; valign: top">
268 <span style="color: red">Ins&egrave;re un &eacute;l&eacute;ment</span> dans la liste
269 </td>
270 <td>
271 <pre>
272 #include &lt;iostream&gt;
273 #include &lt;list&gt;
274
275 int main()
276 {
277 std::list&lt;int&gt; l;
278
279 <font color="red"><strong>l.push_front(3);</strong></font>
280 <font color="red"><strong>l.push_front(2);</strong></font>
281 <font color="red"><strong>l.push_back(4);</strong></font>
282
283 l.pop_front();
284 l.pop_back();
285
286 std::cout &lt;&lt; l.front() &lt;&lt; std::endl;
287 std::cout &lt;&lt; l.back() &lt;&lt; std::endl;
288
289 return 0;
290 }
291 </pre>
292 </td>
293 </tr>
294 </tbody>
295 </table>
296
297</div>
298
299<!-- Diapo [List] -->
300<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
301
302 <h1>List</h1>
303
304 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
305 <tbody>
306 <tr>
307 <td style="width: 30%; valign: top">
308 <span style="color: red">Retire un &eacute;l&eacute;ment</span> de la liste
309 </td>
310 <td>
311 <pre>
312 #include &lt;iostream&gt;
313 #include &lt;list&gt;
314
315 int main()
316 {
317 std::list&lt;int&gt; l;
318
319 l.push_front(3);
320 l.push_front(2);
321 l.push_back(4);
322
323 <font color="red"><strong>l.pop_front();</strong></font>
324 <font color="red"><strong>l.pop_back();</strong></font>
325
326 std::cout &lt;&lt; l.front() &lt;&lt; std::endl;
327 std::cout &lt;&lt; l.back() &lt;&lt; std::endl;
328
329 return 0;
330 }
331 </pre>
332 </td>
333 </tr>
334 </tbody>
335 </table>
336
337</div>
338
339<!-- Diapo [List] -->
340<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
341
342 <h1>List</h1>
343
344 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
345 <tbody>
346 <tr>
347 <td style="width: 30%; valign: top">
348 <span style="color: red">Acc&egrave;de &agrave; un &eacute;l&eacute;ment</span> de la liste
349 </td>
350 <td>
351 <pre>
352 #include &lt;iostream&gt;
353 #include &lt;list&gt;
354
355 int main()
356 {
357 std::list&lt;int&gt; l;
358
359 l.push_front(3);
360 l.push_front(2);
361 l.push_back(4);
362
363 l.pop_front();
364 l.pop_back();
365
366 std::cout &lt;&lt; <font color="red"><strong>l.front()</strong></font> &lt;&lt; std::endl;
367 std::cout &lt;&lt; <font color="red"><strong>l.back()</strong></font> &lt;&lt; std::endl;
368
369 return 0;
370 }
371 </pre>
372 </td>
373 </tr>
374 </tbody>
375 </table>
376
377</div>
378
379
380
381<!-- Diapo [Vector] -->
382<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
383
384 <h1>Vector</h1>
385
386 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
387 <tbody>
388 <tr>
389 <td style="width: 30%; valign: top">
390 Utilisation des vecteurs
391 </td>
392 <td>
393 <pre>
394 #include &lt;iostream&gt;
395<font color="red"><strong> #include &lt;vector&gt;</strong></font>
396
397 int main()
398 {
399 std::vector&lt;int&gt; v;
400
401 v.push_back(3);
402 v.push_back(4);
403
404 std::cout &lt;&lt; v[0] &lt;&lt; std::endl;
405
406 v.at( 1 ) = 5;
407 std::cout &lt;&lt; v.back() &lt;&lt; std::endl;
408
409 v.clear();
410 return 0;
411 }
412 </pre>
413 </td>
414 </tr>
415 </tbody>
416 </table>
417
418</div>
419
420<!-- Diapo [Vector] -->
421<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
422
423 <h1>Vector</h1>
424
425 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
426 <tbody>
427 <tr>
428 <td style="width: 30%; valign: top">
429 <span style="color: red">Ins&egrave;re un &eacute;l&eacute;ment</span> dans le vecteur
430 </td>
431 <td>
432 <pre>
433 #include &lt;iostream&gt;
434 #include &lt;vector&gt;
435
436 int main()
437 {
438 std::vector&lt;int&gt; v;
439
440 <font color="red"><strong>v.push_back(3);</strong></font>
441 <font color="red"><strong>v.push_back(4);</strong></font>
442
443 std::cout &lt;&lt; v[0] &lt;&lt; std::endl;
444
445 v.at( 1 ) = 5;
446 std::cout &lt;&lt; v.back() &lt;&lt; std::endl;
447
448 v.clear();
449 return 0;
450 }
451 </pre>
452 </td>
453 </tr>
454 </tbody>
455 </table>
456
457</div>
458
459<!-- Diapo [Vector] -->
460<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
461
462 <h1>Vector</h1>
463
464 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
465 <tbody>
466 <tr>
467 <td style="width: 30%; valign: top">
468 <span style="color: red">Acc&egrave;de</span> au 1er &eacute;l&eacute;ment
469 </td>
470 <td>
471 <pre>
472 #include &lt;iostream&gt;
473 #include &lt;vector&gt;
474
475 int main()
476 {
477 std::vector&lt;int&gt; v;
478
479 v.push_back(3);
480 v.push_back(4);
481
482 std::cout &lt;&lt; <font color="red"><strong>v[0]</strong></font> &lt;&lt; std::endl;
483
484 v.at( 1 ) = 5;
485 std::cout &lt;&lt; v.back() &lt;&lt; std::endl;
486
487 v.clear();
488 return 0;
489 }
490 </pre>
491 </td>
492 </tr>
493 </tbody>
494 </table>
495
496</div>
497
498<!-- Diapo [Vector] -->
499<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
500
501 <h1>Vector</h1>
502
503 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
504 <tbody>
505 <tr>
506 <td style="width: 30%; valign: top">
507 <span style="color: red">Modifie</span> le 2&egrave; &eacute;l&eacute;ment
508 </td>
509 <td>
510 <pre>
511 #include &lt;iostream&gt;
512 #include &lt;vector&gt;
513
514 int main()
515 {
516 std::vector&lt;int&gt; v;
517
518 v.push_back(3);
519 v.push_back(4);
520
521 std::cout &lt;&lt; v[0] &lt;&lt; std::endl;
522
523 <font color="red"><strong>v.at( 1 ) = 5;</strong></font>
524 std::cout &lt;&lt; v.back() &lt;&lt; std::endl;
525
526 v.clear();
527 return 0;
528 }
529 </pre>
530 </td>
531 </tr>
532 </tbody>
533 </table>
534
535</div>
536
537<!-- Diapo [Vector] -->
538<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
539
540 <h1>Vector</h1>
541
542 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
543 <tbody>
544 <tr>
545 <td style="width: 30%; valign: top">
546 <span style="color: red">Acc&egrave;de au dernier &eacute;l&eacute;ment</span> du vecteur
547 </td>
548 <td>
549 <pre>
550 #include &lt;iostream&gt;
551 #include &lt;vector&gt;
552
553 int main()
554 {
555 std::vector&lt;int&gt; v;
556
557 v.push_back(3);
558 v.push_back(4);
559
560 std::cout &lt;&lt; v[0] &lt;&lt; std::endl;
561
562 v.at( 1 ) = 5;
563 std::cout &lt;&lt; <font color="red"><strong>v.back()</strong></font> &lt;&lt; std::endl;
564
565 v.clear();
566 return 0;
567 }
568 </pre>
569 </td>
570 </tr>
571 </tbody>
572 </table>
573
574</div>
575
576<!-- Diapo [Vector] -->
577<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
578
579 <h1>Vector</h1>
580
581 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
582 <tbody>
583 <tr>
584 <td style="width: 30%; valign: top">
585 <span style="color: red">Supprime tous les &eacute;l&eacute;ments</span>
586 </td>
587 <td>
588 <pre>
589 #include &lt;iostream&gt;
590 #include &lt;vector&gt;
591
592 int main()
593 {
594 std::vector&lt;int&gt; v;
595
596 v.push_back(3);
597 v.push_back(4);
598
599 std::cout &lt;&lt; v[0] &lt;&lt; std::endl;
600
601 v.at( 1 ) = 5;
602 std::cout &lt;&lt; v.back() &lt;&lt; std::endl;
603
604 <font color="red"><strong>v.clear();</strong></font>
605 return 0;
606 }
607 </pre>
608 </td>
609 </tr>
610 </tbody>
611 </table>
612
613</div>
614
615
616<!-- Diapo [Méthodes communes] -->
617<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
618
619 <h1>Quelques m&eacute;thodes communes</h1>
620
621 <ul class="incremental">
622 <li class="non-incremental">
623 Vider le conteneur :
624 <ul>
625 <li>
626 <strong>void clear();</strong>
627 <br />
628 appelle le destructeur pour chaque objet dans le conteneur
629 <br />
630 d&eacute;salloue la m&eacute;moire utilis&eacute;e
631 </li>
632 </ul>
633 <br /><br />
634 </li>
635 <li>
636 Retourner le nombre d'&eacute;l&eacute;ments :
637 <ul><li><strong>int size();</strong></li></ul>
638 <br /><br />
639 </li>
640 <li>
641 Tester si le conteneur est vide :
642 <ul><li><strong>bool empty();</strong></li></ul>
643 </li>
644 </ul>
645
646</div>
647
648
649<!-- Diapo [Itérateurs] -->
650<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
651
652 <h1>It&eacute;rateurs</h1>
653
654 <div class="incremental">
655 <ul class="non-incremental">
656 <li>
657 C'est une g&eacute;n&eacute;ralisation de la notion de <em>pointeur</em>.
658 </li>
659 <li>
660 Il permet de parcourir en s&eacute;quence les &eacute;l&eacute;ments d'un conteneur
661 sans avoir &agrave; se pr&eacute;occuper du type du conteneur.
662 </li>
663 </ul>
664
665 <div style="padding-top: 5px; padding-left: 30%">
666 <pre style="width: 75%">
667 #include &lt;vector&gt;
668 {
669 std::vector&lt;int&gt; v;
670 //
671 <font color="red"><strong>std::vector&lt;int&gt;::iterator</strong></font> it1 = v.begin();
672 <font color="red"><strong>std::vector&lt;int&gt;::iterator</strong></font> it2 = v.end();
673 }
674 </pre>
675 </div>
676 <div style="text-align: center;">
677 <img src="./STL_images/iterator.png" alt="Repr&eacute;sentation graphique d'un it&eacute;rateur" width="30%"/>
678 </div>
679
680 </div>
681
682</div>
683
684<!-- Diapo [Itérateurs] -->
685<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
686
687 <h1>It&eacute;rateurs</h1>
688
689 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
690 <tbody>
691 <tr>
692 <td style="width: 30%; valign: top">
693 &nbsp;
694 </td>
695 <td>
696 <pre>
697 #include &lt;iostream>
698 #include &lt;list>
699
700 int main()
701 {
702 std::list&lt;int> liste;
703
704 for (unsigned int i = 0; i &lt; 10; i++) {
705 liste.push_back(i);
706 }
707
708 std::list&lt;int>::iterator it;
709 for (it = liste.begin(); it != liste.end(); ++it) {
710 int i = *it;
711 std::cout &lt;&lt; "i = " &lt;&lt; i &lt;&lt; std::endl;
712 }
713 return (0);
714 }
715 </pre>
716 </td>
717 </tr>
718 </tbody>
719 </table>
720
721</div>
722
723<!-- Diapo [Itérateurs] -->
724<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
725
726 <h1>It&eacute;rateurs</h1>
727
728 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
729 <tbody>
730 <tr>
731 <td style="width: 30%; valign: top">
732 <span style="color: red">D&eacute;claration</span>
733 </td>
734 <td>
735 <pre>
736 #include &lt;iostream>
737 #include &lt;list>
738
739 int main()
740 {
741 std::list&lt;int> liste;
742
743 for (unsigned int i = 0; i &lt; 10; i++) {
744 liste.push_back(i);
745 }
746
747 <font color="red"><strong>std::list&lt;int>::iterator it;</strong></font>
748 for (it = liste.begin(); it != liste.end(); ++it) {
749 int i = *it;
750 std::cout &lt;&lt; "i = " &lt;&lt; i &lt;&lt; std::endl;
751 }
752 return (0);
753 }
754 </pre>
755 </td>
756 </tr>
757 </tbody>
758 </table>
759
760</div>
761
762<!-- Diapo [Itérateurs] -->
763<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
764
765 <h1>It&eacute;rateurs</h1>
766
767 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
768 <tbody>
769 <tr>
770 <td style="width: 30%; valign: top">
771 <span style="color: red">1er &eacute;l&eacute;ment</span>
772 </td>
773 <td>
774 <pre>
775 #include &lt;iostream>
776 #include &lt;list>
777
778 int main()
779 {
780 std::list&lt;int> liste;
781
782 for (unsigned int i = 0; i &lt; 10; i++) {
783 liste.push_back(i);
784 }
785
786 std::list&lt;int>::iterator it;
787 for (it = <font color="red"><strong>liste.begin()</strong></font>; it != liste.end(); ++it) {
788 int i = *it;
789 std::cout &lt;&lt; "i = " &lt;&lt; i &lt;&lt; std::endl;
790 }
791 return (0);
792 }
793 </pre>
794 </td>
795 </tr>
796 </tbody>
797 </table>
798
799</div>
800
801<!-- Diapo [Itérateurs] -->
802<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
803
804 <h1>It&eacute;rateurs</h1>
805
806 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
807 <tbody>
808 <tr>
809 <td style="width: 30%; valign: top">
810 <span style="color: red">Pointe apr&egrave;s le dernier &eacute;l&eacute;ment</span>
811 </td>
812 <td>
813 <pre>
814 #include &lt;iostream>
815 #include &lt;list>
816
817 int main()
818 {
819 std::list&lt;int> liste;
820
821 for (unsigned int i = 0; i &lt; 10; i++) {
822 liste.push_back(i);
823 }
824
825 std::list&lt;int>::iterator it;
826 for (it = liste.begin(); it != <font color="red"><strong>liste.end()</strong></font>; ++it) {
827 int i = *it;
828 std::cout &lt;&lt; "i = " &lt;&lt; i &lt;&lt; std::endl;
829 }
830 return (0);
831 }
832 </pre>
833 </td>
834 </tr>
835 </tbody>
836 </table>
837
838</div>
839
840<!-- Diapo [Itérateurs] -->
841<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
842
843 <h1>It&eacute;rateurs</h1>
844
845 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
846 <tbody>
847 <tr>
848 <td style="width: 30%; valign: top">
849 On <span style="color: red">incr&eacute;mente</span> l'it&eacute;rateur
850 </td>
851 <td>
852 <pre>
853 #include &lt;iostream>
854 #include &lt;list>
855
856 int main()
857 {
858 std::list&lt;int> liste;
859
860 for (unsigned int i = 0; i &lt; 10; i++) {
861 liste.push_back(i);
862 }
863
864 std::list&lt;int>::iterator it;
865 for (it = liste.begin(); it != liste.end(); <font color="red"><strong>++it</strong></font>) {
866 int i = *it;
867 std::cout &lt;&lt; "i = " &lt;&lt; i &lt;&lt; std::endl;
868 }
869 return (0);
870 }
871 </pre>
872 </td>
873 </tr>
874 </tbody>
875 </table>
876
877</div>
878
879<!-- Diapo [Itérateurs] -->
880<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
881
882 <h1>It&eacute;rateurs</h1>
883
884 <table class="noborder" style="padding-left: 15%; padding-top: 10%">
885 <tbody>
886 <tr>
887 <td style="width: 30%; valign: top">
888 On acc&egrave;de &agrave; l'&eacute;l&eacute;ment par <span style="color: red">d&eacute;r&eacute;f&eacute;rencement</span>
889 </td>
890 <td>
891 <pre>
892 #include &lt;iostream>
893 #include &lt;list>
894
895 int main()
896 {
897 std::list&lt;int> liste;
898
899 for (unsigned int i = 0; i &lt; 10; i++) {
900 liste.push_back(i);
901 }
902
903 std::list&lt;int>::iterator it;
904 for (it = liste.begin(); it != liste.end(); ++it) {
905 int <font color="red"><strong>i = *it</strong></font>;
906 std::cout &lt;&lt; "i = " &lt;&lt; i &lt;&lt; std::endl;
907 }
908 return (0);
909 }
910 </pre>
911 </td>
912 </tr>
913 </tbody>
914 </table>
915
916</div>
917
918
919<!-- Diapo [Choisir un conteneur] -->
920<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide">
921
922 <h1>Choisir un conteneur</h1>
923
924 <ul class="incremental">
925 <li class="non-incremental">
926 <strong>List</strong> :
927 <ul>
928 <li>si on a besoin d'ins&eacute;rer ou de supprimer au milieu</li>
929 <li>insertion en temps constant</li>
930 <li>acc&egrave;s au n-i&egrave;me &eacute;l&eacute;ment en it&eacute;rant depuis le 1er</li>
931 </ul>
932 <br />
933 </li>
934 <li>
935 <strong>Vector</strong> :
936 <ul>
937 <li>si on a besoin d'acc&eacute;der au n-i&egrave;me &eacute;l&eacute;ment</li>
938 <li>insertion et suppression peuvent &ecirc;tre co&ucirc;teuses</li>
939 <li>tr&egrave;s efficace lorsqu'on a &agrave; parcourir le conteneur</li>
940 </ul>
941 <br />
942 </li>
943 <li>
944 <strong>Map</strong> :
945 <ul>
946 <li>listes associatives</li>
947 <li>listes maintenues tri&eacute;es lors de l'insertion de nouveaux &eacute;l&eacute;ments</li>
948 </ul>
949 </li>
950 </ul>
951
952</div>
953
954
955
956<!-- Diapo -->
957<div style="border-style: none; display: none; visibility: hidden; position: absolute;" class="slide" id="thanks">
958
959 <p>Questions ?</p>
960
961</div>
962
963</body>
964
965</html>
Note: See TracBrowser for help on using the repository browser.