Ich sehe oft Leute über C-Stil-Arrays mit einem Zeiger iterieren, während ich es besser finde, einen Index zu verwenden. Das folgende Beispiel veranschaulicht die zwei Möglichkeiten, über die ich nachdenke. Sie führen nicht zu der gleichen Demontage ...Wie kann ich am besten über ein C-Array iterieren? Mit Zeigern oder nach Index?
Meine Frage: Ist es vorteilhaft, einen "Läufer" anstelle eines Index zu verwenden? Übrigens, gibt es einen anderen Namen für die "Läufer" -Technik?
Kommt es auf den zugrunde liegenden Typ, z. int, char oder eine Struktur?
struct somestruct
{
float f;
int i;
};
const unsigned int uiSize = 10000;
somestruct * myarray = new somestruct[uiSize];
const somestruct * const pEnd = myarray + uiSize;
// way 1: runner
somestruct * pRunner = myarray;
while(pRunner < pEnd)
{
pRunner->f += 5;
pRunner->i += 5;
++pRunner;
}
// way 2: index
unsigned int ui = 0;
for (ui = 0; ui < uiSize; ++ui)
{
myarray[ui].f += 6;
myarray[ui].i += 4;
}
Das ist C++ nicht C. Und ich denke, du meinst "Array" nicht "Vektor". – kaylum
http://stackoverflow.com/a/11625741/187690 – AnT
Ist es nicht wie beide gleich sind? –