std::pair<int, int> vs struct avec deux int

Dans un ACM exemple, j'ai dû construire une grande table de programmation dynamique. J'ai eu de stocker deux entiers dans chaque cellule, j'ai donc décidé d'aller pour une std::pair<int, int>. Toutefois, l'allocation d'un large éventail d'entre eux a pris 1,5 secondes:

std::pair<int, int> table[1001][1001];

Par la suite, j'ai changé ce code pour

struct Cell {
    int first;
    int second;
}

Cell table[1001][1001];

et l'allocation a 0 secondes.

Ce qui explique cette énorme différence dans le temps?

  • Je crois que tu veux dire ACM celui-ci.
  • Avez-vous tester avec les optimisations activées?
  • Quelle est la performance si vous ajoutez un non-arg constructeur de Cell?
  • optimisations où activé sur le juge serveur. (pensez que j'ai entendu O3)
  • Par clang (900.0.39.2), il prend en 0.007 s avec -O0, 2e-07 s avec -O3. Par gcc (8.1), il faut 0.005 s avec -O0, 0 s avec -O3. Cette question devient invalide que le temps passe?
InformationsquelleAutor Etan | 2009-10-22