Ich möchte einen Vektor mit 8 Paaren füllen. Jedes Paar repräsentiert die Züge in x- und y-Koordinaten, die ein Ritter in einem Schachspiel machen kann. Im Moment mache ich es soFüllen eines Vektors von Paaren
vector<pair<int,int>> moves[8];
pair<int,int> aPair;
aPair.first = -2;
aPair.second = -1;
moves[0].push_back(aPair);
aPair.first = -2;
aPair.second = 1;
moves[1].push_back(aPair);
aPair.first = -1;
aPair.second = -2;
moves[2].push_back(aPair);
aPair.first = -1;
aPair.second = 2;
moves[3].push_back(aPair);
aPair.first = 1;
aPair.second = -2;
moves[4].push_back(aPair);
aPair.first = 1;
aPair.second = 2;
moves[5].push_back(aPair);
aPair.first = 2;
aPair.second = -1;
moves[6].push_back(aPair);
aPair.first = 2;
aPair.second = 1;
moves[7].push_back(aPair);
Ich mache das, um über die Std-Bibliothek zu lernen. Dies scheint ein hoffnungslos ineffizienter Weg zur Lösung dieses Problems zu sein.
Wer hat eine elegantere Lösung?
erste Beobachtung: Verwenden 'bewegt [0] .push_back (std :: make_pair (-2 , -1)); ' zweite Beobachtung: Sie haben 8 Vektoren nicht eins. – andre