Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sd-ca:articole:tutorial-01-1 [2016/02/24 13:14]
radu.stochitoiu
sd-ca:articole:tutorial-01-1 [2016/02/24 13:26] (current)
radu.stochitoiu
Line 111: Line 111:
  
 ==== Program de test ==== ==== Program de test ====
 +
 +In continuare vom face un program care prima data citeste n numere intr-un ResizableArray de dimensiune n, apoi mai citeste inca m numere pe care le introduce in acelasi ResizableArray pentru a demonstra realocarea, iar apoi va afisa elementele inainte si dupa sortarea acestora.
 +
 +<code cpp>
 +#include <​iostream>​
 +#include "​ResizableArray.h"​
 +
 +int main() {
 + // Declararea unui element de tip ResizableArray
 + ResizableArray ra; 
 +
 + // Initializarea (alocarea vectorului intern). Presupunem ca are o dimensiune n;
 + int n;
 + std::cout << "n = ";
 + std::cin >> n;
 + ra.init(n);​
 +
 + // Citirea si adaugarea a n elemente.
 + for ( int i = 0; i < n; ++i ) {
 + int x; // al i-lea element citit de la tastatura
 + std::cin >> x;
 + ra.push_back(x);​
 +
 + // Observatie: Capacitatea vectorului intern nu se modifica.
 + std::cout << "​Dimensiune:​ " << ra.size << " Capacitate " << ra.capacity << '​\n';​
 + }
 +
 + // Afisare continut vector
 + ra.print();​
 +
 + // Vom adauga in continuare inca m elemente;
 + int m;
 + std::cout << "m = ";
 + std::cin >> m;
 + for ( int i = 0; i < m; ++i ) {
 + int x; // al i-lea element citit de la tastatura
 + std::cin >> x;
 + ra.push_back(x);​
 +
 + // Observatie: Se poate modifica capacitatea vectorului intern!
 + std::cout << "​Dimensiune:​ " << ra.size << " Capacitate " << ra.capacity << '​\n';​
 + }
 +
 + // Afisare continut vector
 + std::cout << "​Inainte de sortare\n";​
 + ra.print();​
 +
 + // Vom sorta elementele apoi vom afisa din nou continutul.
 + ra.sort();
 + std::cout << "Dupa sortare\n";​
 + ra.print();​
 +
 + // Eliberare memorie
 + delete[] ra.array;
 +
 + return 0;
 +}
 +</​code>​
 +
 +Exemplu:
 +
 +<code bash>
 +n = 5
 +1         
 +Dimensiune: 1 Capacitate 5
 +7
 +Dimensiune: 2 Capacitate 5
 +13
 +Dimensiune: 3 Capacitate 5
 +2
 +Dimensiune: 4 Capacitate 5
 +41
 +Dimensiune: 5 Capacitate 5
 +Continut: 1 7 13 2 41 
 +m = 6
 +1
 +Dimensiune: 6 Capacitate 10
 +5
 +Dimensiune: 7 Capacitate 10
 +2
 +Dimensiune: 8 Capacitate 10
 +-2
 +Dimensiune: 9 Capacitate 10
 +1
 +Dimensiune: 10 Capacitate 10
 +4
 +Dimensiune: 11 Capacitate 20
 +Inainte de sortare
 +Continut: 1 7 13 2 41 1 5 2 -2 1 4 
 +Dupa sortare
 +Continut: -2 1 1 1 2 2 4 5 7 13 41
 +</​code>​
  
 ==== Verificare cu Valgrind ==== ==== Verificare cu Valgrind ====
  
 +Pentru acelasi test rulat cu <code bash> valgrind ./main.out </​code>​ toata memoria va fi eliberata.
 +
 +<code bash>
 +==8090== HEAP SUMMARY:
 +==8090== ​    in use at exit: 0 bytes in 0 blocks
 +==8090== ​  total heap usage: 3 allocs, 3 frees, 140 bytes allocated
 +==8090== ​
 +==8090== All heap blocks were freed -- no leaks are possible
 +==8090== ​
 +==8090== For counts of detected and suppressed errors, rerun with: -v
 +==8090== ERROR SUMMARY: 0 errors from 0 contexts (suppressed:​ 0 from 0)
 +</​code>​
sd-ca/articole/tutorial-01-1.1456312470.txt.gz · Last modified: 2016/02/24 13:14 by radu.stochitoiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0