War auch schon am überlegen ob es daran liegen könnte...
g++ ist auf 4.8.1
War auch schon am überlegen ob es daran liegen könnte...
g++ ist auf 4.8.1
Wenn ich's richtig sehe ist die MinGW Version von gcc generell auf 4.8.1. 4.8.2 ist nur als beta zu haben...
Hmm, clang++ gibt auch den gleichen Fehler aus...
$>clang++ -o p2.exe main.cpp -std=c++11 -stdlib=libc++
main.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
^
1 error generated.
hmm...
Ich hab ein kleines Frage-Antwort-Spiel in Java und möchte dieses gerne auf dem Smartphone (Android) spielen. Dazu brauche ich ein Label mit der Frage, ein Antwortfeld und einen Bestätigenbutton.
Gibts da irgendwo ein ganz einfaches Tutorial für? Alles was ich bisher gefunden habe ist nicht zu gebrauchen
Welches Gui-Toolkit willst du denn verwenden? Swing?
Ich hab ein JFrame Fenster mit swing. Würde das gerne möglichst einfach in Android übertragen.
Es gibt doch für Android Apps von Google was, wimre
Folgende Funktion ist die Bremse meines Programms, bzw. hier wird die Hauptarbeit erledigt. Die Frage ist, was kann ich noch optimieren:
(Vector und Matrix ist einfach die std::vector<double> bzw. std::vector<std::vector<double>>.)
PHP-Code:
void nearestPlane(Vector& mu, const Matrix& Mu, int k)
{
double d, y, t;
int n = mu.size();
Vector temp(k);
Vector err(n); // Error vector
for (int i=0; i<n; ++i) {err[i] = 0;}
for (int i=0; i<k; ++i) {temp[i] = mu[n-k+i];}
for (int i = n-1; i >= 0; --i)
{
d = round(mu[i]);
if (d != 0)
{
mu[i] -= d; // |mu[i]| <= 0.5
for (int j=0; j < i; ++j)
{
y = - d * Mu[i][j] + err[j];
t = mu[j] + y;
err[j] = (t - mu[j]) - y;
mu[j] = t;
}
}
if (i >= n-k) {mu[i] = temp[i-n+k] - mu[i];}
else {mu[i] *= -1;}
}
}
Civ4 PBEM: 235, 49, 60, 208, 259, 392 - tot, 22, 71, 90, 340 - vernichtet, 53, 132 - überlebt, 166, 294, 378 - gewonnen
Er unterstütz ja <string> und c++11 das ist nicht das Problem, er unterstützt aber anscheinend nicht di stox(string) funktionen...
Ich versuche jetzt erstmal clang gescheit zum laufen zu bringen
Civ4 PBEM: 235, 49, 60, 208, 259, 392 - tot, 22, 71, 90, 340 - vernichtet, 53, 132 - überlebt, 166, 294, 378 - gewonnen
Der error-Vektor könnte mit .clear oder .fill ohne Schleife gesetzt werden, aber die Stelle bringt nicht so viel, da es ja eher an der doppelten for-Schleife hängt.
Ich bin mir unsicher, wie C++ mehrdimensionale Arrays auflöst. Aber die [i][j] Zugriffe erfordern doch immer eine Multiplikation, die du doch auflösen könntest?!
Falls die Eingabe von round positiv ist, könnte man das auch durch (int)(val+0.5) ersetzen.
Da hießen die aber glaub noch strtox() und nicht stox() oder? Und die funktionierten auf Basis der alten C-Style Strings?
Matrix muss aber irgendwie anders definiert sein oder du hast noch eigene Operatoren definiert. Jedenfalls sehen einige Anweisungen wie mu[i] -= d; merkwürdig aus.
Das ist keine Multiplikation, sondern wiederholte aufrufe des [] operators. Das ist noch viel langsamer.
Man kann in der inneren Schleife besser mit iteratoren über die 2. Dimension der Matrix laufen.
Guter Hinweis.
Civ4 PBEM: 235, 49, 60, 208, 259, 392 - tot, 22, 71, 90, 340 - vernichtet, 53, 132 - überlebt, 166, 294, 378 - gewonnen