c++ vector intialise a vector of agents for a gennetic algorithm : So i have the following c++ code, but i get some errors in mainly stuff like the following (after the block of code) the Agent is just a class that i created in a seperate file

    vector<Agent> population;
	for (vector<int>::iterator i = population.begin(); i != population.end(); ++i) {
		population.push_back(new Agent(generateDna(targetString.size())));
	}


i get the following errors
1.
 
no suitable user-defined conversion from "__gnu_cxx::__normal_iterator<Agent *, std::vector<Agent, std::allocator<Agent>>>" to "__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>" exists

2.

no operator "!=" matches these operands -- operand types are: __gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>> != __gnu_cxx::__normal_iterator<Agent *, std::vector<Agent, std::allocator<Agent>>>

3.

no instance of overloaded function "std::vector<_Tp, _Alloc>::push_back [with _Tp=Agent, _Alloc=std::allocator<Agent>]" matches the argument list -- argument types are: (Agent *) -- object type is: std::vector<Agent, std::allocator<Agent>>

and im new to c++ so these things might be self exsplanitory, but idk what they mean.