Initialisation pour obtenir un "vector" par defaut en paramètre d'une fonction en c++

Bonjour à tous,

Je veux initialiser un “vector” qui est en paramètre d’une fonction et je ne sais pas comment m’y prendre :


class C1
  {
  private:
  public:
      void f1(int,float=0,vector<int>?????);
  }

Je veux pouvoir appeler la fonction f1 en ne mettant que l’entier en paramètre. pour le flottant ça marche mais pour le “vector” je ne sais pas comment l’initialiser.
Je ne veux pas réécrire une autre fonction f1 avec un nombre de paramèetre différent, et je veux pouvoir l’appeler avec 1, 2 ou trois paramètres.

Merci d’avance pour la solution qui doit être simple mais je ne la trouve pas !!!

Je ne comprend pas trop ton problème ? Tu veux passer un vector avec une valeur par défaut ?

Tu as essayé : vector = vector() tout simplement ?

Sinon je ne suis pas trop pour les paramètres par défaut, ça pose plus de problèmes que ça n’en résout, surtout en C++ vu que c’est une information que tu fous en général dans le .h : tu peux avoir une lib qui a été compilé avec un paramètre par défaut A et une autre avec un paramètre par défaut B car sa valeur est dans l’entête (partagée).

C’est peut-être chiant mais ça, ça marchera :

void f1(int, float);
void f1(int, float, vector<int>);

void C1::f1(int a, float b) {
  vector<int> v;
  C1::f1(a, b, v);
}

Pour vector=vector(), ça ne marche pas.

Sinon je veux avoir le même effet que dans le code que tu as écris, mais sans redéfinir la fonction. avec un nombre différent de parametres.

Et const std::vector& = vector ? (je me base sur www.cplusplus.com… : ils le font sur l’Allocator, y a pas de raisons que ça refuse de le faire pour un vector).