can anyone help me convert this code from array to Vector?
I need this in it

class VectorList  {

      vector<WeatherStation> List;

      vector<WeatherStation>::iterator ThroughTheList;


      VectorList() {;}
#include <iostream>
#include <string>

using namespace std;

class WeatherStation
	string StationDesignation;  //Identifies the station
	string StationAgent;        //Who's responsible
	double Temperature;         //The temperature

	//Define some mutators...These member functions allow us to
    //change values in the object...

	void SetDesignation(string ID)      { StationDesignation = ID; }
	void SetAgent(string Agent)         { StationAgent = Agent; }
	void SetTemperature(double Degree)  {Temperature = Degree; }

	//Define some accessors...These member functions allow us to get
    //  at the internal values

	string GetDesignation()  { return StationDesignation; }
	string GetAgent()        { return StationAgent; }
	double GetTemperature()  { return Temperature; }
	 //Define a displayer...this will show the contents of the object
	 // in  an easy to read format..

	void Show()
		cout << StationDesignation << endl;
		cout << StationAgent << endl;



void Menu();
int AddStation(WeatherStation[],int);
void PostTemperatures(WeatherStation*, int);
void DailyReport(WeatherStation*, int);
void HighLow(WeatherStation*, int);

int main()
	string Command;
	WeatherStation names[25];
	int Size = 0;

	while (true){
	cout << "Enter Command: " ;
	getline (cin,Command);
	cout << endl;
	cout << endl;
		if (Command == "Quit")
		else if (Command == "Add Stations")
			Size = Size + AddStation(names,25);
		else if (Command == "Post Temperatures")
			PostTemperatures (names,Size);
		else if (Command == "Daily Report")
			DailyReport (names, Size);
		else if (Command == "High-Low Report")
			HighLow (names, Size);
int AddStation(WeatherStation List[], int MaxSize)             //Add Stations & Agent
	string ID, Agent;
	int K;

	cout << "Enter Station Information Below, Stop to Quit" << endl;

	for (K=0 ; K<MaxSize ; K++) {
		cout << "Enter Weather Station Designation: " ;
		getline(cin, ID);
		if (ID == "Stop")
		cout << "Enter Contact Person: " ;
		if (Agent == "Stop")

	return K;

void Menu()  //The Menu
	cout << "=========== Menu ===========" << endl;
	cout << "==== Choices: ==============" << endl;
	cout << "Add Stations" << endl;
	cout << "Post Temperatures" << endl;
	cout << "Daily Report" << endl;
	cout << "High-Low Report" << endl;
	cout << "Quit" << endl;
	cout << "==============================" << endl;
	cout << endl;

void PostTemperatures(WeatherStation* List, int Size)     //Post Temperatures
	int K;
	int Degree;
	cout << "Enter Reported Temperatures.." << endl;

	for (K=0 ; K<Size ; K++){

		cout << "Enter Temperature: ";

void DailyReport (WeatherStation* List, int Size)    //Daily report
	int K;
	double Sum=0;
	double CelSum;
	double CelDegrees [25];
	cout << "==========NGS Daily Temperature Report==========" << endl;
	cout << "================================================" << endl;
	cout << "------------------------------------------------" << endl;
	for (K=0 ; K<Size ; K++){
		CelDegrees[K]=(5 *(List[K].GetTemperature() - 32))/9;   //Finding the Celsius
		CelSum=(5 *(Sum - 32))/9;								//Finding the Mean Celsius
		cout << List[K].GetDesignation() << "    :      " << List[K].GetTemperature() << "\370F     " << CelDegrees[K] << "\370C" << endl;
		cout << "------------------------------------------------" << endl;
		Sum=Sum+List[K].GetTemperature();                       //Getting the Sum of all temperatures
	cout << "Mean    :        " << (Sum/Size) << "\370F     " << (CelSum/Size) <<"\370C" << endl;
	cout << "================================================" << endl;

void HighLow(WeatherStation* List, int Size)       //High-Low
	int K;
	double Max=List[0].GetTemperature();
	double Min=List[0].GetTemperature();
	double MinCelDegrees=0, MaxCelDegrees=0;

	for (K=0 ; K < Size ; K++){
		if(List[K].GetTemperature() > Max) {        //Finding Max
		MaxCelDegrees=(5 *(Max - 32))/9;            //Finding Max Celsius
		if(List[K].GetTemperature() < Min){         //Finding Min
			MinCelDegrees=(5 *(Min - 32))/9;        //Finding Min Celsius

	cout << "========NGS Temperature Data Report========" << endl;
	cout << "-------------------------------------------" << endl;
	cout << "Lowest Temperature:  " << Min << "\370F    " << MinCelDegrees << "\370C" << endl;
	cout << "-------------------------------------------" << endl;
	cout << "Highest Temperature:  " << Max << "\370F    " << MaxCelDegrees << "\370C" << endl;
	cout << "-------------------------------------------" << endl;
	cout << "========End Temperature Data Report========" << endl;
7 Years
Discussion Span
Last Post by Clinton Portis

can anyone help me convert this code from array to Vector?

I will help you.

  1. Instead of declaring an array, declare a vector.
  2. Anytime you want to add to the vector, call the push_back() member:
  3. Anytime you want to get stuff from the vector, you can use subscripts to access a specific array element:
    cout << myvector[i];
  4. You can get the size of the vector easily by calling the size() member:
    for(int i=0, size=myvector.size(); i<size; i++)

Edited by Clinton Portis: duck and cover.


I'm still kinda confused, maybe you can give some examples using my code above. I'll probably understand it more that way. Thanks!


can give some examples using my code above. I'll probably understand it more that way.

You will actually understand it less when you are spoon fed the code.

You seem like an intelligent individual.. why not give it a try? What's the worst that could happen..??

Isn't this an array? because of the

Being the astute CS student that I know you are, I'm sure you've studied the vector class and found out that it is based on the array datastructure:

Vectors are a kind of sequence containers. As such, their elements are ordered following a strict linear sequence.

Vector containers are implemented as dynamic arrays; Just as regular arrays, vector containers have their elements stored in contiguous storage locations, which means that their elements can be accessed not only using iterators but also using offsets on regular pointers to elements.

But unlike regular arrays, storage in vectors is handled automatically, allowing it to be expanded and contracted as needed.

Vectors are good at:

* Accessing individual elements by their position index (constant time).
* Iterating over the elements in any order (linear time).
* Add and remove elements from its end (constant amortized time).

So, to answer your question.. yes, the subscript operator is overloaded for the vector object, giving it array-like capability.

Edited by Clinton Portis: mo' money, mo' problems.

This topic has been dead for over six months. 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.