0

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

2
Contributors
2
Replies
3
Views
8 Years
Discussion Span
Last Post by chunalt787
1

The vector class is in the std namespace. Change vector<FrequencyNode> list; to std::vector<FrequencyNode> list; . You have other errors though.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.