Partage
  • Partager sur Facebook
  • Partager sur Twitter

Valarray

    9 août 2007 à 1:52:52

    Bonjour.

    J'essay de comprendre le fonctionnement de la classe Valarray, mais la je bloque sur une fonction, j'ai essayé un petit code pour voir si il pouvait m'aider a comprendre, mais tout ce qu'il fait c'est planter.

    Mon problème vient précisement de l'utilisation de la classe gslice comme masque pour un valarray, je ne comprend pas comment ce masque fonction, si quelqu'un pouvait m'eclaircir à ce sujet (j'ai compris le fonctionnement de slice).

    et Voici le code que j'ai testé et qui plante au moment de l'appliquation du masque :
    1. #include <iostream>
    2. #include <valarray>
    3. using namespace std;
    4. void affiche(const valarray<int> &v)
    5. {
    6.     size_t i;
    7.     for (i=0; i<v.size(); ++i)
    8.         cout << v[i] << " ";
    9.     cout << endl;
    10. }
    11. void affiche(const valarray<size_t> &v)
    12. {
    13.     size_t i;
    14.     for (i=0; i<v.size(); ++i)
    15.         cout << v[i] << " ";
    16.     cout << endl;
    17. }
    18. int main(void)
    19. {
    20.     // Construit un valarray d'entier :
    21.     int valeurs[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    22.     valarray<int> vi(valeurs, 10);
    23.     affiche(vi);
    24.     size_t valeurs1[] = { 2, 2};
    25.     valarray<size_t> v1(valeurs1, sizeof(valeurs1) / sizeof(size_t));
    26.     affiche(v1);
    27.     size_t valeurs2[] = { 2, 2};
    28.     valarray<size_t> v2(valeurs2, sizeof(valeurs2) / sizeof(size_t));
    29.     affiche(v2);
    30.     gslice sel(0, v1, v2);
    31.     affiche(vi);
    32.     vi[sel] *= valarray<int>(2, vi.size());
    33.     affiche(vi);
    34.     return 0;
    35. }

    Je ne comprend pas mon erreur et je ne sait pas non plus qu'elles sont les effets exactes de mon masque (surment la cause du plantage d'ailleur).

    Merci d'ravance a celui (ceux) qui peut m'aider.
    • Partager sur Facebook
    • Partager sur Twitter
    FaQ : Fr | En 1 2 | C++11 | Template || Blog : Deloget | C++|Boost--Dev | C++Next | GotW || Installer Boost

    Valarray

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown