Log In | Get Help   
Home My Page Projects Code Snippets Project Openings Mareframe
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files
[mareframe] Annotation of /trunk/gadget/intvector.cc
[mareframe] / trunk / gadget / intvector.cc Repository:
ViewVC logotype

Annotation of /trunk/gadget/intvector.cc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (view) (download)

1 : agomez 1 #include "intvector.h"
2 :     #include "gadget.h"
3 :    
4 :     IntVector::IntVector(int sz, int value) {
5 :     size = (sz > 0 ? sz : 0);
6 :     int i;
7 :     if (size > 0) {
8 :     v = new int[size];
9 :     for (i = 0; i < size; i++)
10 :     v[i] = value;
11 :     } else
12 :     v = 0;
13 :     }
14 :    
15 :     IntVector::IntVector(const IntVector& initial) {
16 :     size = initial.size;
17 :     int i;
18 :     if (size > 0) {
19 :     v = new int[size];
20 :     for (i = 0; i < size; i++)
21 :     v[i] = initial.v[i];
22 :     } else
23 :     v = 0;
24 :     }
25 :    
26 :     IntVector::~IntVector() {
27 :     if (v != 0) {
28 :     delete[] v;
29 :     v = 0;
30 :     }
31 :     }
32 :    
33 :     void IntVector::resize(int addsize, int value) {
34 :     if (addsize <= 0)
35 :     return;
36 :    
37 :     int i;
38 :     if (v == 0) {
39 :     size = addsize;
40 :     v = new int[size];
41 :     for (i = 0; i < size; i++)
42 :     v[i] = value;
43 :    
44 :     } else {
45 :     int* vnew = new int[size + addsize];
46 :     for (i = 0; i < size; i++)
47 :     vnew[i] = v[i];
48 :     for (i = size; i < size + addsize; i++)
49 :     vnew[i] = value;
50 :     delete[] v;
51 :     v = vnew;
52 :     size += addsize;
53 :     }
54 :     }
55 :    
56 :     void IntVector::Delete(int pos) {
57 :     int i;
58 :     if (size > 1) {
59 :     int* vnew = new int[size - 1];
60 :     for (i = 0; i < pos; i++)
61 :     vnew[i] = v[i];
62 :     for (i = pos; i < size - 1; i++)
63 :     vnew[i] = v[i + 1];
64 :     delete[] v;
65 :     v = vnew;
66 :     size--;
67 :     } else {
68 :     delete[] v;
69 :     v = 0;
70 :     size = 0;
71 :     }
72 :     }
73 :    
74 :     IntVector& IntVector::operator = (const IntVector& iv) {
75 :     int i;
76 :     if (size == iv.size) {
77 :     for (i = 0; i < size; i++)
78 :     v[i] = iv[i];
79 :     return *this;
80 :     }
81 :     if (v != 0) {
82 :     delete[] v;
83 :     v = 0;
84 :     }
85 :     size = iv.size;
86 :     if (size > 0) {
87 :     v = new int[size];
88 :     for (i = 0; i < size; i++)
89 :     v[i] = iv.v[i];
90 :     } else
91 :     v = 0;
92 :     return *this;
93 :     }
94 :    
95 :     void IntVector::Reset() {
96 :     if (size > 0) {
97 :     delete[] v;
98 :     v = 0;
99 :     size = 0;
100 :     }
101 :     }
102 :    
103 :     void IntVector::setToZero() {
104 :     int i;
105 :     for (i = 0; i < size; i++)
106 :     v[i] = 0;
107 :     }

root@forge.cesga.es
ViewVC Help
Powered by ViewVC 1.0.0  

Powered By FusionForge