This is for a frequency table that will eventually allow me to build a Huffman coding tree. I want the class FrequencyTable to simply hold a vector of the type FrequencyNode however I keep getting an error about ISO forbiding the creation of the vector. Any ideas why?
Error:
FrequencyTable.h:11: error: ISO C++ forbids declaration of ‘vector’ with no type
Class FrequencyNode
#ifndef FREQUENCY_NODE_H
#define FREQUENCY_NODE_H
#include <iostream>
#include <stdlib.h>
#include <string>
class FrequencyNode {
private:
int frequency; //Key
char character; //Element
public:
FrequencyNode() //default constructor
:character(0) {}
FrequencyNode(int freqParam, char charParam) //constructor
:frequency(freqParam), character(charParam) {}
int getKey() { return frequency; }
char getChar() { return character; }
int incrimentKey() { frequency++; }
int assignChar(char ch) { character = ch; }
};
#endif
Class FrequencyTable
#include "FrequencyNode.h"
#include <vector>
#ifndef FREQUENCY_TABLE_H
#define FREQUENCY_TABLE_H
class FrequencyTable {
private:
vector<FrequencyNode> list;
public:
int getlist() { return list; }
FrequencyNode getMin();
bool charInTable(char ch);
};
//FUNCTION DEFINITIONS
FrequencyNode FrequencyTable::getMin() {
FrequencyNode smallest = list[0];
for(int i = 0; i < list.size(); i++) {
if(list[i].getKey() < smallest.getKey[i]) {
smallest = list[i];
} //end if statment
} //end for loop
return smallest;
}
bool FrequencyTable::charInTable(char ch) {
for(int i = 0; i < list.size(); i++) {
if(list[i].getChar() == ch) {
return true;
} //end if statment
} //end for loop
return false;
}
#endif
Thanks