2016-06-17 21 views
-5

Ich habe gerade angefangen, C++ zu lernen. Ich muss ein Array mit 1000 Namen erstellen. Meine Idee war, zunächst ein Array mit 10 Namen zu erstellen und dann die Namen zu permutieren, um 1000 zu erzeugen. Ich weiß jedoch nicht, wie ich das erste Array erstellen soll (ich nehme an, es ist ein Array von Strings, aber ich nicht wissen, ob meine Syntax korrekt ist), und ich weiß nicht, wie man die Namen weiter permutieren kann, um ein größeres Array zu bilden. Könnte mir jemand helfen?Wie alle Kombinationen gedruckt werden?

+0

Bitte schreiben Sie Ihren Code, ein [MCVE]. –

Antwort

1

Für ein Array kleiner fester Größe verwenden Sie vorzugsweise aus dem Header <array>. Verwenden Sie für Zeichenfolgen std::string (oder vielleicht std::wstring) aus dem Header . Verwenden Sie für eine feste Werteliste einen geschweiften Klammern-Initialisierer.

Somit wird für die Anordnung von 10 Namen, z.B.

#include <array> 

const std::array< std::string, 10 > basic_names = 
{ 
    "alfa", 
    "beta", 
    // and so on 
}; 

Das Array von 1000 Namen beginnt groß zu bekommen, und dann verwenden bevorzugt ein std::vector, aus den <vector>-Header. Es ist auch schön, weil es in der Größe geändert werden kann. Sie können neue Elemente einfach über die Methode push_back anhängen.

Also z.B.

auto computed_names() 
    -> std::vector<std::string> 
{ 
    std::vector<std::string> result; 
    for(auto& name1 : basic_names) 
     for(auto& name2 : basic_names) 
      for(auto& name3 : basic_names) 
      { 
       result.push_back(name1 + " " + name2 + " " + name3); 
      } 
    return result; 
} 

const std::vector<std::string> names = computed_names(); 

Haftungsausschluss: Code nicht einmal von einem Compiler überprüft.

Verwandte Themen