C++ vecteurs de classes avec des constructeurs

//Using g++ and ubuntu.
#include <vector>
using namespace std;

Définir une classe:

class foo(){
(...)
foo(int arg1, double arg2);
}

Constructeur:

foo::foo(int arg1, double arg2){ 
(...) //arrays whose length depend upon arg1 and arg2
} 

Je voudrais faire quelque chose comme ceci:

vector<foo> bar(10); //error: no matching function for call to 'foo::foo()'
bar[0] = new foo(123, 4.56);
(...)

Une autre méthode (que j'aime moins) est d'utiliser push_back:

vector<foo> bar; //works
bar.push_back(new foo(123, 4.56)); //throws similar error.
//Omitting the "new" compiles but throws a "double free or corruption (fasttop)" on runtime.

Je veux les différents éléments du vecteur d'être construit différemment, donc je ne veux pas utiliser la "séquence Répétitive constructeur".
Ce qui devrait être fait?

OriginalL'auteur Kevin Kostlan | 2010-08-09