Initialiser la matrice ou du vecteur sur du constructeur de l'initialisation de la liste

Comment puis-je initialiser un (string) matrice ou d'un vecteur d'un constructeur de l'initialisation de la liste en C++?

Veuillez considérer cet exemple là où je veux initialiser un tableau de chaînes avec des arguments donnés par le constructeur:

#include <string>
#include <vector>

class Myclass{
           private:
           std::string commands[2];
           //std::vector<std::string> commands(2); respectively 

           public:
           MyClass( std::string command1, std::string command2) : commands( ??? )
           {/* */}
}

int main(){
          MyClass myclass("foo", "bar");
          return 0;
}

En outre, laquelle de ces deux types (tableau vs vecteur) est recommandé pour l'enregistrement de deux chaînes lors de la création d'un objet, et pourquoi?

Utiliser des accolades, tout comme vous le feriez normalement.
Comme dans Myclass m = {"hello", "world"}; ou comme dans Myclass(const std::string& c1, const std::string& c2) : commands{c1, c2}{}?
L'un de ceux à ne pas initialiser les membres, tandis que l'autre s'affiche bien dans Vaughn réponse.
Oui, c'était en quelque sorte de ce que je recevais. 😉

OriginalL'auteur fotinsky | 2013-10-24