Ich habe einen Code auf C++, den ich auf PHP neu schreiben muss. Seltsames passiert mir, da ich PHP-Programmierer bin und C++ nicht gut kenne. Dies ist der Code:C++ unordered_set einfügen einfügen PHP
#include <iostream>
#include <unordered_set>
using namespace std;
int func(int choice) {
unordered_set<int> hset;
for (int counter = 0; counter < choice; counter++) {
hset.insert(counter);
if (counter % 2 == 0) {
hset.insert(counter);
hset.insert(counter + 1);
}
}
return hset.size();
}
int main(int argc, char** argv) {
cout << func(561);
return 0;
}
Ausgabe des Codes ist: 562
;
Ich habe PHP-Code wie folgt geschrieben:
function func($choice) {
$hset = [];
for ($counter = 0; $counter < $choice; $counter++) {
array_push($hset, $counter);
if ($counter % 2 == 0) {
array_push($hset, $counter);
array_push($hset, $counter + 1);
}
}
return count($hset);
}
echo func(561);
Es gibt 1123
. Bitte helfen Sie.
verwenden Warum Sie 'unordered_set' verwenden? Weißt du, was sein Zweck ist? Der Grund, warum ich frage, ist, weil Sie eine Menge von doppelten Elementen in die Menge einfügen, und "ungeordnete_menge" behält nur eine Kopie jedes einzelnen Elements. –
@BenjaminLindley Das ist das Problem: Das OP kennt (zugegeben) C++ nicht gut. Sie haben jedoch einen Punkt: dieser bestimmte Teil des ursprünglichen Codes macht keinen Sinn. –
@MrLister: Ja, ich bin nur neugierig, was ihn denken ließ "ungeordnete_set" war der richtige Container der Job hier (was auch immer dieser Job ist). Es ist in der Regel nicht einer der ersten Container lernen Sie beim Lernen von C++ und einer Die ersten Container, über die die meisten Leute Bescheid wissen ("std :: vector"), sind afaikt, der richtige Container für den Job. –