blob: 51742f13f85e3c82354aeed4168285a1e02777fd (
plain)
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
|
#include "NAWArray.h"
#include "NAW.h"
#include <sstream>
#include <iostream>
NAWArray::NAWArray() { }
NAWArray::~NAWArray() { }
void NAWArray::add(const NAW& newNAW) {
_nawCollection[_nawCollectionSize++] = new NAW(newNAW);
}
int NAWArray::zoekOpEersteNaam(const std::string& naam) const {
for (unsigned i = 0; i < _nawCollectionSize; i++) {
if (!_nawCollection[i]->heeftNaam(naam)) continue;
return i;
}
return -1;
}
int NAWArray::zoekOpEersteAdres(const std::string& adres) const {
for (unsigned i = 0; i < _nawCollectionSize; i++) {
if (!_nawCollection[i]->heeftAdres(adres)) continue;
return i;
}
return -1;
}
int NAWArray::zoekOpEerstePlaats(const std::string& plaats) const {
for (unsigned i = 0; i < _nawCollectionSize; i++) {
if (!_nawCollection[i]->heeftPlaats(plaats)) continue;
return i;
}
return -1;
}
int NAWArray::zoekOpEersteAdresEnPlaats(const std::string& adres, const std::string& plaats) const {
for (unsigned i = 0; i < _nawCollectionSize; i++) {
if (!_nawCollection[i]->heeftAdres(adres)) continue;
if (!_nawCollection[i]->heeftPlaats(plaats)) continue;
return i;
}
return -1;
}
int NAWArray::verwijderEersteMetNaam(const std::string& naam) {
int x = -1; // deleted element index
for (unsigned i = 0; i < _nawCollectionSize; i++) {
if (x == -1) {
if (!_nawCollection[i]->heeftNaam(naam)) continue;
x = i; // set deleted element index
_nawCollectionSize--; // decrease container size
i++; // skip deleted element
}
if (i == 0) continue; // check if i-1 >= 0
_nawCollection[i-1] = _nawCollection[i]; // shift elements back
}
return x;
}
int NAWArray::verwijderLaatsteMetNaam(const std::string& naam) {
int x = -1; // deleted element index
for (unsigned _i = 0; _i < _nawCollectionSize; _i++) {
unsigned i = _nawCollectionSize - (_i + 1); // calculate index from back
if (x == -1) {
if (!_nawCollection[i]->heeftNaam(naam)) continue;
x = i; // set deleted element index
_nawCollectionSize--; // decrease container size
_i = i; // set loop index to deleted element
i++; // skip deleted element
}
i = _i; // move forward through array shifting elements back
if (i == 0) continue; // check if i-1 >= 0
_nawCollection[i-1] = _nawCollection[i]; // shift elements back
}
return x;
}
int NAWArray::verwijderAllenMetNaam(const std::string& naam) {
int c = 0; // deleted element count
for (unsigned i = 0; i < _nawCollectionSize; i++) {
if (_nawCollection[i]->heeftNaam(naam)) {
c++; // pun unintended
_nawCollectionSize--; // decrease container size
}
if (i + c >= _nawCollectionSize) break;
_nawCollection[i] = _nawCollection[i + c]; // shift elements back
}
return c;
}
int NAWArray::verwijderEersteMetAdresEnPlaats(const std::string& adres, const std::string& plaats) {
int x = -1; // deleted element index
for (unsigned i = 0; i < _nawCollectionSize; i++) {
if (x == -1) {
if (!_nawCollection[i]->heeftAdres(adres)) continue;
if (!_nawCollection[i]->heeftPlaats(plaats)) continue;
x = i; // set deleted element index
_nawCollectionSize--; // decrease container size
i++; // skip deleted element
}
if (i == 0) continue; // check if i-1 >= 0
_nawCollection[i-1] = _nawCollection[i]; // shift elements back
}
return x;
}
int NAWArray::verwijderAllenMetAdresEnPlaats(const std::string& adres, const std::string& plaats) {
int c = 0; // deleted element count
for (unsigned i = 0; i < _nawCollectionSize; i++) {
if (_nawCollection[i]->heeftAdres(adres) &&
_nawCollection[i]->heeftPlaats(plaats)) {
c++; // pun unintended
_nawCollectionSize--; // decrease container size
}
if (i + c >= _nawCollectionSize) break;
_nawCollection[i] = _nawCollection[i + c]; // shift elements back
}
return c;
}
|