Just been doing some coding recently, and I am getting an error in this snippet of code:
Code:
template <class T>
void RemoveElement ( vector <T> hay_stack, T needle )
{
vector<T>::iterator iter = hay_stack.begin();
while ( iter != hay_stack.end() && (*iter) != needle ) iter++;
if ( (*iter) == needle ) hay_stack.erase ( iter );
}
It tells me " expected `;' before 'iter' ". At first I thought I had forgot a semicolon somewhere else in the file that then caused this error to be thrown, but I don't see any.
Here's the whole file:
Code:
#ifndef __AGENTS_SIMULATION_H
#define __AGENTS_SIMULATION_H
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <vector>
using namespace std;
#include "world.h"
namespace AgentsSimulation
{
extern World SimulatedWorld;
void InitializeSimulation ( );
void RunIteration ( );
template <class T>
int FindVectorElement ( vector <T> hay_stack, T needle )
{
for ( unsigned int x = 0; x < hay_stack.size(); x++ )
{
if ( hay_stack[x] == needle ) return x;
}
return -1;
}
template <class T>
void RemoveElement ( vector <T> hay_stack, T needle )
{
vector<T>::iterator iter = hay_stack.begin();
while ( iter != hay_stack.end() && (*iter) != needle ) iter++;
if ( (*iter) == needle ) hay_stack.erase ( iter );
}
}
#endif /* __AGENTS_SIMULATION_H */