AccC++ loop på loop...crash
#include <iostream>#include <vector>
#include <string>
#include <algorithm>
using std::cout;
using std::cin;
using std::endl;
using std::sort;
using std::string;
using std::vector;
int main()
{
vector<string> names;
string name;
int antal = 0;
cout << "Type in arbitrary words: ";
while (cin >> name) {
if (name == "q")
break;
names.push_back(name);
++antal;
}
sort(names.begin(), names.end());
cout << "Antal: " << antal << endl;
//print the values in vector names to the screen
for (int i = 0; i != antal; ++i) {
cout << names[i] << endl;
}
//nr. m element in the vector is analized
for (int m = 0; m != antal; ++m) {
int k = 1;
//nr. n element in the vector is analized
for (int n = m+1; n != antal; ++n) {
// if there is two identical words k will be incremented.
// when m = 0, names[m-1] = names[-1]... therefore the switch statement.
switch (((bool)m)) {
case 0: {
if (names[m] == names[n]) {
++k;
}
}
case 1: {
if ((names[m] == names[n]) && (names[m] != names[m-1])) {
++k;
}
}
}
}
// when element m in the vector has been checked against the others
cout << "Der er " << k << " ord paa formen " << names[m] << endl;
}
system("PAUSE");
return 0;
}
-----------------------------------
Dette lille program går mig på nerverne. Beskrivelse: indlæser nogle ord fra tastaturet, hvorefter programmet finder ud af, hvor mange gange de enkelte ord optræder i den vektor de er indlæst i. Ordene sorteres ved hjælp af sort() inden de udsættes 'loop på loop'.
Opgaven er fra bogen Accelerated C++: 3-3
Programmet kompileres uden problemer, men windows kan bestemt ikke lide det. Den kaster en fejlmeddelelse til skærmen og programmet går i stå.