Php code in c++

Hi Experten,

kann mir jemand bitte helfen, den folgenden php-code in c++ zu übersetzen?
Ich kenn mich damit leider garnicht aus. :frowning:

Vielen Dank
Munich

for ($i = 0;$i

Hallo,

kann mir jemand bitte helfen, den folgenden php-code in c++ zu
übersetzen?

Dazu musst du uns zuerst sagen, welchen Typ die Daten in $array haben.

Grüße,
Moritz

das sind ganz normale String-Variablen…
Also keine weiteren Elemente…

Konkret geht es darum aus einem Array alle Werte zu entfernen, die identisch sind…

Vielen Dank
Munich

Hallo MunichFreak,

kann mir jemand bitte helfen, den folgenden php-code in c++ zu
übersetzen? Ich kenn mich damit leider garnicht aus.

for($i=0; $i<?php $array = array(1,2,2,3,4,4,4,5,5,6,6,6,6,7,7,7,8);

$newarray = array_values( array_unique($array) );
?>
Falls das nicht möglich ist, wäre es hilfreich, wenn Du
etwas über die Problemdomäne aussagst, in welchem der
Code laufen soll. Danach würde sich in C++ die Wahl
der Implementation richten - so wie Moritz das schon
angedeutet hat.

Grüße

CMБ

Ich verstehe die Fragestellung nicht so ganz.
Würde es nicht reichen, den Code erstmal nach PHP
zu übersetzen?

nein…
weil gezielt nach C++ gefragt ist und nicht nach php.
Und da es in c++ wohl keine Art von Array_unique() gibt hab ich eben einen möglichen Ansatz schon mal in PHP skizziert…
Das half nur nicht weiter, weil die Syntax in C++ nicht bekannt war…
Das Problem hab ich ja schon beschrieben…
Es müssen doppelte Werte aus einem Array entfernt werden.

Von Problemdomäne und Implementation hab ich wie gesagt keine Ahnung…
Also kann ich da leider auch nicht weiterhelfen…

Hallo,

Das Problem hab ich ja schon beschrieben…

In C/C++ gibt es keine Strings, sondern
nur Skalare und Arrays von Skalaren.
In der Standardbibliothek (std) von
C++ gibt es eine String-Klasse, aber
ob die geeignet ist, muß man anhand
der konkreten Problemstellung
entscheiden.

Daher:

  • welches Betriebssystem

  • welcher C/C+±Compiler

  • welche Bibliotheken erlaubt (std::, boost:: etc.)

  • welche Art von „Stringdaten“ (konkret)

  • Wieviele Stringdaten (100 oder 10^8)

Grüße

CMБ

Hallo nochmal,

weil gezielt nach C++ gefragt ist und nicht nach php.
Und da es in c++ wohl keine Art von Array_unique() gibt hab
ich eben einen möglichen Ansatz schon mal in PHP skizziert…
Das half nur nicht weiter, weil die Syntax in C++ nicht
bekannt war…
Das Problem hab ich ja schon beschrieben…
Es müssen doppelte Werte aus einem Array entfernt werden.

OK, mit der C+±Standardbiblithek ist es leicht,
ein array_unique nachzubauen. Ich hab mal eine
Variante skizziert, die das macht, was Du
haben möchtest:

#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

 typedef std::vector STRVEC; // lesbarer Typ f. Stringarray
 
 STRVEC array\_unique(const STRVEC& array) 
{
 typedef std::set STRSET;
 STRSET sset(array.begin(), array.end()); // einen Hash-Set bauen (unique)
 return STRVEC(sset.begin(), sset.end()); // den unique-Vektor davon ableiten
}

 int main()
{
 // ein paar c-strings vorgeben
 const char \*some\_strings[] = { "aa","aa","ee","bb","cc","aa","dd","bb","cc" };
 // und einen Vektor von String-Klassen davon
 STRVEC array(some\_strings+0, some\_strings+7); 
 
 STRVEC newarray = array\_unique(array); // 

Grüße

CMБ
1 Like